Jak skonfigurować load balancing dla aplikacji webowej z Nginx
Wysoki ruch w aplikacjach webowych może przeciążyć pojedynczy serwer. Rozwiązaniem jest load balancing, czyli równoważenie obciążenia pomiędzy wiele instancji aplikacji. Dzięki temu użytkownicy otrzymują szybsze odpowiedzi, a infrastruktura jest bardziej odporna na awarie. Nginx to jedno z najpopularniejszych narzędzi do realizacji tego zadania.Na czym polega load balancing
rozdzielanie ruchu przychodzącego na wiele serwerów aplikacyjnych
zapewnienie wysokiej dostępności - awaria jednego serwera nie zatrzymuje aplikacji
zwiększenie wydajności - kilka serwerów obsługuje więcej użytkowników
elastyczność - łatwe dodawanie lub usuwanie instancji
Podstawowa konfiguracja w Nginx
Load balancing w Nginx opiera się na sekcji upstream. Definiujemy w niej listę serwerów backendowych, a następnie kierujemy do nich ruch z bloku server.
http {
upstream backend {
server 192.168.1.101;
server 192.168.1.102;
server 192.168.1.103;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
Algorytmy load balancing w Nginx
Domyślnie Nginx stosuje round-robin (kolejne żądania do kolejnych serwerów). Można też użyć innych metod:
least_conn - kieruje żądanie do serwera z najmniejszą liczbą aktywnych połączeń
ip_hash - użytkownicy trafiają zawsze na ten sam serwer (przydatne przy sesjach)
weight - możliwość ustawienia wag, czyli serwer o większej mocy obsłuży więcej żądań
Przykład z wagami:
upstream backend {
server 192.168.1.101 weight=3;
server 192.168.1.102 weight=1;
}
Obsługa awarii serwerów backend
Nginx potrafi automatycznie wykrywać niedostępne serwery i kierować ruch tylko na działające.
upstream backend {
server 192.168.1.101 max_fails=3 fail_timeout=30s;
server 192.168.1.102;
}
Sticky sessions (utrzymanie sesji użytkownika)
Niektóre aplikacje wymagają, aby użytkownik zawsze trafiał na ten sam backend (np. sesje w pamięci). Wtedy przydatny jest ip_hash.
upstream backend {
ip_hash;
server 192.168.1.101;
server 192.168.1.102;
}
SSL termination i proxy_pass
Nginx może także zakończyć połączenie SSL i przekazać ruch do backendów jako HTTP.
server {
listen 443 ssl;
ssl_certificate /etc/ssl/certs/server.crt;
ssl_certificate_key /etc/ssl/private/server.key;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Podsumowanie
Nginx jako load balancer to proste i skuteczne rozwiązanie, które zwiększa wydajność i dostępność aplikacji. Dzięki algorytmom równoważenia, obsłudze awarii i wsparciu dla SSL, może być centralnym punktem infrastruktury webowej. Wdrożenie Nginx jako load balancera to jeden z kluczowych kroków przy skalowaniu serwisów.
15 wrz 2025 • 13 min czytania Jak wykrywać i blokować boty na poziomie serwera WWW?
Boty to nieodłączna część internetu. Część z nich jest pożyteczna - to np. roboty wyszukiwarek, które indeksują strony w Google czy Bing....
Zobacz więcej
06 wrz 2025 • 9 min czytania Redis vs Memcached - które rozwiązanie cache wybrać dla aplikacji webowe
Cache to jeden z najprostszych i najskuteczniejszych sposobów na przyspieszenie aplikacji webowych. Dzięki niemu dane są przechowywane w...
Zobacz więcej
07 wrz 2025 • 10 min czytania Fail2Ban i Nginx - pełna konfiguracja blokowania ataków
Nginx sam w sobie oferuje mechanizmy ograniczania liczby żądań i filtrowania adresów IP, ale nie zawsze wystarcza to przy bardziej...
Zobacz więcej
19 wrz 2025 • 13 min czytania Caching w warstwie bazy danych - kiedy i jak go używać?
Caching w warstwie bazy danych to technika, która pozwala znacząco przyspieszyć działanie aplikacji i zmniejszyć obciążenie serwera....
Zobacz więcej
10 wrz 2025 • 12 min czytania Alerty w Zabbix - jak wysyłać powiadomienia do Slack i Telegram?
Samo monitorowanie serwerów i aplikacji nie wystarczy, jeśli administrator nie dostanie natychmiast informacji o problemie. Zabbix...
Zobacz więcejTutaj znajdziesz odpowiedzi na najważniejsze pytania dotyczące naszych usług i wsparcia.
FAQ
Jakie usługi administracji serwerami oferujecie?
Świadczymy kompleksową obsługę - od konfiguracji i monitoringu, przez optymalizację wydajności, aż po pełne wsparcie techniczne 24/7.
Czy zajmujecie się migracją danych i systemów?
Tak, wykonujemy bezpieczne migracje plików, baz danych i aplikacji - bez przestojów i bez dodatkowych kosztów.
Czym różni się serwer dedykowany od VPS?
Serwer dedykowany to pełna maszyna tylko dla Ciebie, a VPS to jej podział na wirtualne środowiska - tańsze, ale współdzielone.
Czy mogę liczyć na pomoc przy awarii?
Tak, monitorujemy serwery całodobowo i natychmiast reagujemy w przypadku awarii, minimalizując ryzyko przestoju.
Czy Wasze rozwiązania są skalowalne?
Oferujemy infrastrukturę, która rośnie razem z Twoim biznesem - łatwo zwiększysz zasoby wtedy, gdy tego potrzebujesz.
Czy oferujecie wsparcie przy budowie infrastruktury?
Tak, projektujemy i wdrażamy środowiska IT dopasowane do potrzeb – od małych firm po duże, złożone systemy.
Jak zabezpieczacie serwery przed atakami i utratą danych?
Stosujemy firewalle, systemy anty-DDoS, regularne backupy i aktualizacje, aby zapewnić maksymalne bezpieczeństwo.
Jakie gwarancje SLA zapewniacie?
Oferujemy SLA na poziomie 99.99% dostępności, co oznacza niezawodne działanie infrastruktury i szybki czas reakcji przy ewentualnych problemach.
Chcesz dowiedzieć się więcej o naszej ofercie?
Wyślij zapytanie