Upstream Probe#
El módulo implementa sondeos activos de salud
para stream_upstream. Nota Según RFC 2616 (HTTP/1.1) y RFC 9110 (Semántica HTTP), las cabeceras HTTP
deben estar separadas por una secuencia CRLF ( Predeterminado — server Define un sondeo activo de salud para servidores dentro del grupo upstream
especificado en la directiva proxy_pass
en el mismo contexto Un servidor pasa el sondeo si la solicitud tiene éxito, considerando todos
los parámetros de configuración de la directiva Para hacer uso de 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. Número de puerto alternativo para la solicitud de sondeo. Intervalo entre sondeos.
Por defecto — La condición para el sondeo, definida como una cadena de variables.
Si la sustitución de variables produce Si se establece, se comprueba el estado inicial del servidor, por lo que el servidor
no recibe solicitudes de clientes hasta que se supere el sondeo. Configurar este parámetro requiere habilitar primero Número de sondeos fallidos consecutivos que
hacen que el servidor se considere no saludable.
Por defecto — 1. Número de sondeos exitosos consecutivos que
hacen que el servidor se considere saludable.
Por defecto — 1. Tamaño máximo de memoria para la respuesta. Si se especifica un
valor cero, se deshabilita la espera de la respuesta.
Por defecto — Modo de sondeo, dependiendo del estado de los servidores: Por defecto — Si se especifica, se utiliza el protocolo UDP para el sondeo.
Por defecto, TCP se utiliza para el sondeo. Datos enviados para el sondeo: datos en línea con el prefijo Al usar un archivo: El proceso worker abre y lee
el archivo en cada acceso; el contenido no se almacena en caché en memoria. No se requiere recarga de configuración cuando el archivo cambia;
el nuevo contenido se leerá en el siguiente acceso. Permisos de acceso requeridos: Actualice los archivos usando el comando move ( Ejemplo: Detalles de operación del sondeo: Inicialmente, el servidor no recibirá solicitudes de clientes
hasta que supere todos los sondeos El servidor se considera no saludable y no recibirá solicitudes de clientes,
si cualquiera de los sondeos configurados para él alcanza Para que un servidor no saludable se considere saludable nuevamente,
todos los sondeos configurados para él deben alcanzar sus respectivos Establece el tiempo máximo de inactividad para una conexión establecida con el servidor para sondeos de salud configurados mediante la directiva upstream_probe (PRO); si se supera este límite, la conexión se cerrará. El módulo Nombre del upstream_probe actualmente activo. Contenido de la respuesta recibida durante un sondeo activo configurado por
upstream_probe.Ejemplo de configuración#
server {
listen ...;
# ...
proxy_pass backend;
upstream_probe_timeout 1s;
upstream_probe backend_probe
port=12345
interval=5s
test=$good
essential
fails=3
passes=3
max_response=512k
mode=onfail
"send=data:GET / HTTP/1.0\r\n\r\n";
}
\r\n) en lugar de solo
\n.Directivas#
upstream_probe (PRO)#
upstream_probe name [port=number] [interval=time] [test=condition] [essential [persistent]] [fails=number] [passes=number] [max_response=size] [mode=always | idle | onfail] [udp] [send=string];server donde se encuentra la directiva upstream_probe.upstream_probe y todos los parámetros que
afectan cómo se utilizan los upstreams por el contexto server donde está definido,
incluyendo la directiva proxy_next_upstream.nameportinterval5s.test"" o "0",
el sondeo no se supera.essentialpersistentessential;
los servidores persistent que se consideraron saludables antes de una
recarga de configuración
comienzan a recibir solicitudes sin necesidad de superar este sondeo primero.failspassesmax_response256k.modealways — los servidores son sondeados independientemente de su estado;idle — los sondeos afectan a servidores no saludables y servidores donde
ha transcurrido interval desde la última solicitud del cliente.onfail — solo se sondean los servidores no saludables.always.udpsenddata:
o una ruta de archivo (absoluta o relativa a /usr/local/angie/).644 para el archivo,
755 para el directorio.mv),
no mediante edición directa.upstream backend {
zone backend 1m;
server a.example.com;
server b.example.com;
}
map $upstream_probe_response $good {
~200 "1";
default "";
}
server {
listen ...;
# ...
proxy_pass backend;
upstream_probe_timeout 1s;
upstream_probe backend_probe
port=12345
interval=5s
test=$good
essential
persistent
fails=3
passes=3
max_response=512k
mode=onfail
"send=data:GET / HTTP/1.0\r\n\r\n";
}
essential configurados para él,
omitiendo los persistent si la configuración se recargó
y el servidor se consideraba saludable antes de eso.
Si no hay tales sondeos, el servidor se considera saludable.fails
o el servidor alcanza max_fails.passes;
después de eso, también se considera max_fails.upstream_probe_timeout (PRO)#
Variables integradas#
stream_upstream admite las siguientes variables integradas:$upstream_probe (PRO)#$upstream_probe_response (PRO)#