En aquest tema, explorarem les capacitats avançades de balanceig de càrrega que ofereix NGINX Plus. Aquestes funcionalitats permeten distribuir el trànsit de manera eficient entre múltiples servidors backend, millorant la disponibilitat i el rendiment de les aplicacions.
Conceptes clau
- Balanceig de càrrega: Distribució del trànsit de xarxa entre diversos servidors per assegurar una càrrega equilibrada i evitar sobrecàrregues.
- NGINX Plus: Versió comercial de NGINX que inclou funcionalitats addicionals com el balanceig de càrrega avançat, monitorització en temps real, i configuració dinàmica.
- Algoritmes de balanceig de càrrega: Mètodes utilitzats per determinar com es distribueix el trànsit entre els servidors backend.
Algoritmes de balanceig de càrrega
NGINX Plus ofereix diversos algoritmes de balanceig de càrrega que es poden utilitzar segons les necessitats específiques de l'aplicació:
- Round Robin: Distribueix les sol·licituds de manera equitativa entre els servidors.
- Least Connections: Envia les sol·licituds al servidor amb menys connexions actives.
- IP Hash: Assigna les sol·licituds basant-se en l'adreça IP del client, assegurant que les sol·licituds del mateix client vagin al mateix servidor.
- Least Time: Envia les sol·licituds al servidor que tingui el menor temps de resposta i menys connexions actives.
Configuració del balanceig de càrrega avançat
Exemple de configuració
A continuació, es mostra un exemple de configuració de balanceig de càrrega avançat utilitzant NGINX Plus:
http { upstream backend { zone backend 64k; server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } }
Explicació del codi
- upstream backend: Defineix un grup de servidors backend anomenat
backend
. - zone backend 64k: Crea una zona compartida per emmagatzemar l'estat dels servidors backend.
- server backend1.example.com: Afegeix un servidor backend al grup.
- proxy_pass http://backend: Redirigeix les sol·licituds al grup de servidors backend.
- proxy_set_header: Configura les capçaleres HTTP que s'envien al servidor backend.
Monitorització i gestió de servidors backend
NGINX Plus permet monitoritzar i gestionar els servidors backend en temps real. Això inclou la capacitat d'afegir o eliminar servidors sense necessitat de reiniciar NGINX.
Exemple de monitorització
http { upstream backend { zone backend 64k; server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; location / { proxy_pass http://backend; } location /status { status; } } }
Accés a la pàgina de monitorització
Per accedir a la pàgina de monitorització, simplement navegueu a http://your-nginx-server/status
. Aquesta pàgina proporciona informació detallada sobre l'estat dels servidors backend, incloent-hi el nombre de connexions actives i el temps de resposta.
Exercici pràctic
Configuració de balanceig de càrrega amb Least Connections
- Creeu un fitxer de configuració NGINX amb el següent contingut:
http { upstream backend { least_conn; server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; location / { proxy_pass http://backend; } } }
- Desplegueu aquesta configuració en el vostre servidor NGINX Plus.
- Verifiqueu que les sol·licituds es distribueixen al servidor amb menys connexions actives.
Solució
El codi proporcionat ja conté la solució. Simplement desplegueu la configuració i verifiqueu el comportament.
Errors comuns i consells
- Error: "502 Bad Gateway": Assegureu-vos que els servidors backend estan actius i accessibles des del servidor NGINX.
- Error de configuració: Verifiqueu que la sintaxi del fitxer de configuració és correcta utilitzant
nginx -t
abans de reiniciar NGINX.
Conclusió
En aquest tema, hem explorat les capacitats avançades de balanceig de càrrega de NGINX Plus, incloent-hi diversos algoritmes de balanceig i la monitorització en temps real dels servidors backend. Aquestes funcionalitats permeten optimitzar la distribució del trànsit i millorar la disponibilitat i el rendiment de les aplicacions.
Curs de NGINX
Mòdul 1: Introducció a NGINX
Mòdul 2: NGINX com a servidor web
- Servint contingut estàtic
- Llistats de directoris
- Pàgines d'error personalitzades
- Registre i formats de registre