NGINX jako LoadBlancer

NGINX jako LoadBlancer

Przy większej aplikacji oraz posiadaniu odpowiedniego parku maszynowego, można fajnie wykorzystać nginx jako balancera.

Zakładajać iż posiadamy 7 serwerów, przy czym jeden to nasza „brama” webowa oraz jeden to serwer bazodanowy, pozostaje nam 5 maszyn jako serwer aplikacji.

Poniżej konfiguracja dla wymienionego scenariusza

upstream serwery_aplikacji {
     ip_hash;
    server app1.domena.pl        fail_timeout=5s weight=5 max_fails=3;
    server app2.domena.pl:8080   fail_timeout=10s slow_start=5s; 
    server app3domena.pl:8080   backup;
    server app4.domena.pl:8080   backup;
    server app5.domena.pl:8080   down;
}

server {
    location / {
        proxy_pass http://serwery_aplikacji;
    }
}

weight = waga serwera, domyślnie jest to 1
max_fails = maksymalna liczba nieudanych połaczeń
backup = oznacz serwer zapasowy