Upstream Probe#
El módulo implementa sondeos activos de salud para Upstream.
Ejemplo de configuración#
server {
listen ...;
location /backend {
...
proxy_pass http://backend;
upstream_probe backend_probe
uri=/probe
port=10004
interval=5s
test=$good
essential
fails=3
passes=3
max_body=10m
mode=idle;
}
}
Directivas#
upstream_probe (PRO)#
| |
Predeterminado | — |
location |
Define un sondeo activo de salud para servidores dentro de los grupos upstream
que se especifican en proxy_pass, uwsgi_pass y directivas similares
en el mismo contexto location que la directiva upstream_probe.
Angie realiza regularmente solicitudes según los parámetros especificados
a cada servidor en el grupo upstream.
Un servidor pasa el sondeo si la solicitud tiene éxito, considerando todas
las configuraciones de parámetros de la directiva upstream_probe y todos los parámetros que
controlan cómo se utilizan los upstreams por el contexto location donde está definido.
Esto incluye las directivas proxy_next_upstream y uwsgi_next_upstream,
etc., así como proxy_set_header y similares.
Para utilizar los sondeos, el upstream debe tener una zona de memoria compartida (zone). Un upstream puede configurarse con varios sondeos.
Se aceptan los siguientes parámetros:
| Nombre obligatorio del sondeo. |
| URI de solicitud que se añadirá al argumento de proxy_pass,
uwsgi_pass, etc. Por defecto — |
| Número de puerto alternativo para la solicitud de sondeo. |
| Intervalo entre sondeos. Por defecto — |
| Método HTTP de la solicitud de sondeo. Por defecto — |
| La condición que se verificará durante la solicitud; definida como una cadena con variables.
Si la sustitución de variables produce |
| Si se establece, el estado inicial del servidor está sujeto a verificación y las solicitudes del cliente no se reenvían a él hasta que el sondeo sea superado. |
| Configurar este parámetro requiere habilitar primero |
| Número de solicitudes fallidas consecutivas que hacen que el servidor se considere no saludable. Por defecto — 1. |
| Número de solicitudes exitosas consecutivas que hacen que el servidor se considere saludable. Por defecto — 1. |
| Cantidad máxima de memoria para el cuerpo de la respuesta. Por defecto — |
| Modo de sondeo, dependiendo de la salud de los servidores:
Por defecto — |
Ejemplo:
upstream backend {
zone backend 1m;
server backend1.example.com;
server backend2.example.com;
}
map $upstream_status $good {
200 "1";
}
server {
listen ...;
location /backend {
...
proxy_pass http://backend;
upstream_probe backend_probe
uri=/probe
port=10004
interval=5s
test=$good
essential
persistent
fails=3
passes=3
max_body=10m
mode=idle;
}
}
Detalles de la operación de sondeo:
Inicialmente, el servidor no recibirá solicitudes de clientes hasta que supere todos los sondeos
essentialconfigurados para él (omitiendo lospersistentsi la configuración se recargó y el servidor se consideraba saludable antes de eso). Si no hay tales sondeos, el servidor se considera saludable.El servidor se considera no saludable y no recibirá solicitudes de clientes si cualquiera de los sondeos configurados para él alcanza su umbral
failso el propio servidor alcanza el umbral max_fails.Para que un servidor no saludable se considere saludable nuevamente, todos los sondeos configurados para él deben alcanzar sus respectivos umbrales
passes; después de eso, se considera el umbral max_fails.
Variables integradas#
El módulo http_upstream_probe admite las siguientes variables integradas:
$upstream_probe (PRO)#
Nombre del upstream_probe actualmente activo.
$upstream_probe_body (PRO)#
Cuerpo de la respuesta del servidor
recibido durante un upstream_probe;
su tamaño está limitado por max_body.