Les comprovacions de salut són una part essencial de la configuració d'un proxy invers amb NGINX, especialment quan es tracta de balanceig de càrrega. Aquestes comprovacions permeten assegurar-se que els servidors de backend estan funcionant correctament abans de redirigir-hi el trànsit. En aquesta secció, aprendrem com configurar i utilitzar les comprovacions de salut en NGINX.

Conceptes clau

  1. Comprovació de salut activa: NGINX envia sol·licituds periòdiques als servidors de backend per verificar que estan operatius.
  2. Comprovació de salut passiva: NGINX monitoritza les respostes dels servidors de backend a les sol·licituds reals dels clients per detectar problemes.

Configuració de les comprovacions de salut

Comprovació de salut activa

Per configurar comprovacions de salut activa, necessitem el mòdul ngx_http_upstream_hc_module, que està disponible en NGINX Plus. A continuació, es mostra un exemple de configuració:

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;

        # Configuració de la comprovació de salut activa
        health_check interval=5s fails=3 passes=2;
    }

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

Explicació del codi:

  • interval=5s: NGINX enviarà una sol·licitud de comprovació de salut cada 5 segons.
  • fails=3: Si un servidor de backend falla 3 comprovacions consecutives, serà marcat com a inactiu.
  • passes=2: Si un servidor de backend passa 2 comprovacions consecutives després d'haver estat marcat com a inactiu, serà marcat com a actiu de nou.

Comprovació de salut passiva

Les comprovacions de salut passiva no requereixen configuració addicional, ja que NGINX les realitza automàticament monitoritzant les respostes dels servidors de backend. No obstant això, podem ajustar alguns paràmetres per millorar la seva eficàcia:

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;

        # Configuració de la comprovació de salut passiva
        proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
    }

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

Explicació del codi:

  • proxy_next_upstream: Defineix les condicions sota les quals NGINX redirigirà la sol·licitud a un altre servidor de backend. En aquest cas, si es produeix un error, un temps d'espera o un codi de resposta HTTP 5xx, NGINX redirigirà la sol·licitud a un altre servidor.

Exercici pràctic

Objectiu

Configurar comprovacions de salut activa i passiva per a un grup de servidors de backend.

Passos

  1. Crea un fitxer de configuració per a NGINX:

    http {
        upstream backend {
            server backend1.example.com;
            server backend2.example.com;
    
            # Configuració de la comprovació de salut activa
            health_check interval=10s fails=2 passes=1;
    
            # Configuració de la comprovació de salut passiva
            proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
        }
    
        server {
            listen 80;
            location / {
                proxy_pass http://backend;
            }
        }
    }
    
  2. Guarda el fitxer i reinicia NGINX:

    sudo nginx -s reload
    
  3. Verifica que les comprovacions de salut estan funcionant:

    • Accedeix al teu servidor NGINX i revisa els logs per assegurar-te que les comprovacions de salut s'estan realitzant correctament.
    • Simula una fallada en un dels servidors de backend i observa com NGINX redirigeix el trànsit a l'altre servidor.

Solució

El codi proporcionat anteriorment ja conté la solució per configurar les comprovacions de salut activa i passiva. Assegura't de substituir backend1.example.com i backend2.example.com amb els teus servidors de backend reals.

Errors comuns i consells

  • Error: "unknown directive 'health_check'": Això indica que estàs utilitzant una versió de NGINX que no inclou el mòdul ngx_http_upstream_hc_module. Assegura't d'utilitzar NGINX Plus o compila NGINX amb el mòdul necessari.
  • Consell: Ajusta els intervals i els paràmetres de les comprovacions de salut segons les necessitats del teu entorn per evitar falsos positius o negatius.

Conclusió

Les comprovacions de salut són una eina poderosa per assegurar la disponibilitat i la fiabilitat dels teus servidors de backend. Amb NGINX, pots configurar tant comprovacions de salut activa com passiva per monitoritzar l'estat dels teus servidors i redirigir el trànsit de manera eficient en cas de fallades. En la següent secció, explorarem pràctiques bàsiques de seguretat per protegir el teu entorn NGINX.

© Copyright 2024. Tots els drets reservats