Puncte:0

Nu pot accesa serviciul web cu adresa IP flotantă atribuită mașinii mele

drapel ma

Am o mașină căreia i-am atribuit o adresă IP flotantă. Acea mașină este și echilibrul meu de încărcare. Îmi pot accesa serviciul cu ușurință folosind adresa IP a echilibratorului de încărcare.

Cu toate acestea, nu pot să-l accesez folosind adresa IP plutitoare care a fost atribuită mașinii mele de echilibrare a sarcinii.

sudo nano /etc/haproxy/haproxy.cfg

implicite
        jurnal global
        modul http
        opțiunea httplog
        opțiunea dontlognull
        timeout connect 5000
        timeout client 50000
        server timeout 50000
        fişierul de erori 400 /etc/haproxy/errors/400.http
        fişierul de erori 403 /etc/haproxy/errors/403.http
        fişierul de erori 408 /etc/haproxy/errors/408.http
        fişierul de erori 500 /etc/haproxy/errors/500.http
        fişierul de erori 502 /etc/haproxy/errors/502.http
        fişierul de erori 503 /etc/haproxy/errors/503.http
        fişierul de erori 504 /etc/haproxy/errors/504.http

#HAProxy pentru servere web
frontend web-frontend
  legați IPADDRESSOFLOADBALANCER:80
  modul http
  default_backend web-backend

backend web-backend
  echilibru roundrobin
  server web-server1 IPADD1:80 verifica
  server web-server2 IPADD2:80 verifica
  server web-server3 IPADD3:80 verifica
  server web-server4 IPADD4:80 verifica

Mai trebuie să fac ceva în afară de atribuirea adresei IP plutitoare. Nu pot accesa serviciul folosind adresa IP flotantă.

introduceți descrierea imaginii aici

c4f4t0r avatar
drapel nl
ați putea să utilizați bind *:80 în interfața haproxy
Himanshu Poddar avatar
drapel ma
@c4f4t0r Da, a funcționat, dar nu am înțeles de ce funcționează? De asemenea, nu va fi nicio problemă de securitate. Nu mă pot lega în mod specific la 2 adrese IP?
Puncte:1
drapel pe

Nu cred că poți, majoritatea oamenilor se leagă doar la o adresă IP sau la TOATE. Ar trebui să utilizați un front-end separat pentru fiecare folosind același backend. Dar toată lumea folosește doar * care funcționează bine.

Puncte:0
drapel ma

Folosisem platforma Digtal Ocean pentru a-mi crea picăturile. După ce i-ai atribuit un IP plutitor din această pagină.

https://cloud.digitalocean.com/networking/floating_ips?i=0eb956

Acum trebuie să obțin IP-ul privat al picăturii mele folosind comanda ip a

root@ubuntu-s-1vcpu-1gb-blr1-01:~# ip a
1: lo: mtu 65536 qdisc noqueue stare UNKNOWN grup implicit qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft pentru totdeauna preferred_lft pentru totdeauna
inet6 ::1/128 scope host
valid_lft pentru totdeauna preferred_lft pentru totdeauna
2: eth0: mtu 1500 qdisc fq_codel stare UP grup implicit qlen 1000
link/ether 52:a0:A:B:C:D brd ff:ff:ff:ff:ff:ff
inet PUBLICIP/20 brd E.F.G.H scope global eth0
valid_lft pentru totdeauna preferred_lft pentru totdeauna
inet *PRIVATEIP(X.X.X.X)*/16 brd X.X.I.J scope global eth0
valid_lft pentru totdeauna preferred_lft pentru totdeauna
inet6 2400:6180:ZZ:ZZ::ZZ:ZZZZ/64 scope global
valid_lft pentru totdeauna preferred_lft pentru totdeauna
inet6 fe80::50a0:9fff:fe54:add2/64 scope link
valid_lft pentru totdeauna preferred_lft pentru totdeauna
3: eth1: mtu 1500 qdisc fq_codel stare UP grup implicit qlen 1000
link/eter 9a:4b:a5:ZZ:ZZ:ZZ brd ff:ff:ff:ff:ff:ff
inet K.L.M.N/20 brd O.P.Q.R sfera globală eth1
valid_lft pentru totdeauna preferred_lft pentru totdeauna
inet6 fe80::984b:SSSS:TTTT:UUUU/64 scope link
valid_lft pentru totdeauna preferred_lft pentru totdeauna

Am primit IP-ul flotant, cum ar fi, FLOATINGIPADDRESS

IP flotant funcționează prin Anchor IP prezent prin interfața eth0. Putem folosi același IP privat, deoarece orice trafic trimis prin IP flotant va fi trimis numai către acest IP privat, de exemplu inet *X.X.X.X*/16 brd

Acum am nevoie de HAProxy pentru a se lega la acest IP privat din fișierul meu HAProxy cfg.

sudo nano /etc/haproxy/haproxy.cfg

#HAProxy pentru servere web
frontend web-frontend
  bind PRIVATEIP(X.X.X.X):80
  lega LOADBALNCERIP:80
  modul http
  default_backend web-backend

backend web-backend

  http-request set-header X-Forwarded-Proto https dacă { ssl_fc } # Pentru Proto
  http-request add-header X-Real-Ip %[src] # Antet personalizat cu src IP
  opțiunea forwardfor # X-forwarded-for

  echilibru roundrobin
  server web-server1 IP1:80 verificare
  server web-server2 IP2:80 verificare
  server web-server3 IP3:80 verificare
  server web-server4 IP4:80 verificare

asculta statistici
bind PRIVATEIP(X.X.X.X):8080
lega LOADBALNCERIP:8080
modul http
opțiune forwardfor
opțiunea httpclose
statisticile permit
statistici arată-legende
statisticile reîmprospătează 5 secunde
stats uri /stats
domeniul statisticilor Haproxy\ Statistici
stats auth root:parola #Login User și parola pentru monitorizare
statistici admin dacă TRUE
default_backend web-backend
c4f4t0r avatar
drapel nl
dacă verificați rezultatul netstat -tunap, veți vedea că haproxy asculta doar pe ip-ul dvs. privat
Himanshu Poddar avatar
drapel ma
ce vrei sa spui prin "doar"? asculta si pe ip public
c4f4t0r avatar
drapel nl
în întrebarea dvs. inițială, ați avut bind PRIVATEIP(X.X.X.X):80, acum continuați să schimbați totul, puteți trece la ieșirea comenzii neststat netstat -tunap | grep ASCULTA si vei vedea ce vreau sa spun :)

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.