Sondeo de upstream#
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 ( Added in version 1.4.0: PRO 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 la comprobación;
puede ser una cadena con el prefijo 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 El módulo Nombre del upstream_probe actualmente activo. Contenido de la respuesta recibida durante un sondeo activo configurado por
upstream_probe.Configuración de ejemplo#
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";
}
rn
) 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.name
port
interval
5s
.test
""
o "0"
,
el sondeo no pasa.essential
persistent
essential
;
los servidores persistent
que se consideraron saludables antes de una
recarga de configuración
comienzan a recibir solicitudes sin necesidad de pasar este sondeo primero.fails
passes
max_response
256k
.mode
always
— 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
.udp
send
data:
o un nombre de archivo con datos
(especificado de forma absoluta o relativa al directorio /usr/local/angie/
).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.Variables integradas#
stream_upstream
admite las siguientes variables integradas:$upstream_probe
(PRO)#$upstream_probe_response
(PRO)#