Puncte:0

HAproxy nu găsește niciun backend atunci când este utilizat un port diferit

drapel in

Am două backend-uri care sunt același server care rulează două din aceeași imagine Docker, dar fiecare cu un port diferit. Adică, pe serverul backend, singura diferență dintre cele două este maparea portului. Echilibratorul meu de încărcare (HAProxy) este o mașină fizică separată la 10.0.0.2.

frontend http-in
    lega *:80
    bind *:443 ssl crt /etc/ssl/mydomain.com/both.pem
    Schema de redirecționare http-request https cu excepția cazului în care { ssl_fc }

    acl eighty_http hdr(host) -m beg -i eighty.
    acl eightyhundred_http hdr(host) -m beg -i eightyhundred.

    use_backend eighty if eighty_http
    use_backend eightyhundred dacă eightyhundred_http

backend optzeci
    server douăzeci 10.0.0.20:80 verificați maxconn 300

backend optzeci sute
    server douăzeci 10.0.0.20:8000 verificați maxconn 300

Când sudo systemctl restart haproxy, îmi spune că "backend eightyhundred nu are niciun server disponibil!" Cu toate acestea, pot curla ambele porturi cu succes din echilibrul de încărcare.

Am pus următoarele în iptables:

sudo iptables -A OUTPUT -p tcp -d 10.0.0.0/16 --sport 8000 -j ACCEPT

...si pentru selinux:

sudo semanage port --add --type http_port_t --proto tcp 8000

niciunul nu a făcut diferența.

Ce îmi lipsește aici?

drapel in
Aș prefera să arunc o privire la acls, nu am nicio experiență cu acls în nginx, așa că nu vă pot ajuta acolo, dar dacă puteți ajunge la backend-uri prin curl, nu este o problemă cu iptables. Dacă serverul dvs. implementează selinux, ar putea fi, de asemenea, o problemă.
drapel in
S-a deschis deja 8000 și în selinux.
drapel in
Vă rugăm să încercați `setsebool -P haproxy_connect_any 1`
Puncte:0
drapel in

Pe scurt, problema este că nu puteți alege aleatoriu un port pe care să îl utilizați pentru backend. Aici, 8000 este deja adăugat la soundd_port_t, care este un grup în care nu se află haproxy. Deci, „sudo semanage port --add --type http_port_t --proto tcp 8000” nu realizează ceea ce a fost intenționat aici. De fapt, nu reușește să facă ceea ce credeți că ar fi putut face atunci când spune că acest port este deja adăugat (este deja adăugat la altceva). Soluția simplă este să selectați porturile la care HAProxy are acces. Tipul ăsta explică totul cel mai bine:

https://unix.stackexchange.com/questions/363878/which-selinux-policies-apply-to-haproxy

drapel in
În mod ironic, acest răspuns se referă la acest [răspuns SF](https://serverfault.com/questions/654599/weird-interaction-with-systemctl-with-haproxy-on-centos-7/654684#654684), așa că cel mai probabil, poate închide această întrebare ca o copie a ei.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.