Upstream Probe#
El módulo implementa sondeos activos de salud para Upstream. Added in version 1.2.0: PRO Predeterminado — location Define un sondeo activo de salud para servidores dentro de los grupos upstream que se especifican para proxy_pass, uwsgi_pass, etc. en el mismo contexto Un servidor pasa el sondeo si la solicitud tiene éxito, considerando todas las configuraciones de parámetros 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. URI de solicitud que se añadirá al argumento para 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 fallos consecutivos que hacen que el servidor se considere no saludable. Por defecto — 1. Número de aciertos consecutivos 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: Detalles de la operación de 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 su umbral Para que un servidor no saludable se considere saludable nuevamente, todos los sondeos configurados para él deben alcanzar sus respectivos umbrales El módulo Nombre del upstream_probe actualmente activo. Cuerpo de la respuesta del servidor,
recibido durante una upstream_probe;
su tamaño está limitado por Configuración de ejemplo#
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)#
upstream_probe
name [uri=
address] [port=
number] [interval=
time] [method=
method] [test=
condition] [essential
[persistent
]] [fails=
number] [passes=
number] [max_body=
size] [mode=
always
| idle
| onfail
];location
con la directiva upstream_probe
. Posteriormente, Angie realiza regularmente solicitudes según los parámetros especificados a cada servidor en el grupo upstream.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.; también, proxy_set_header y similares.name
uri
/
.port
interval
5s
.method
GET
.test
""
o "0"
,
el sondeo no se pasa.essential
persistent
essential
;
los servidores persistent
que estaban funcionando antes de una
recarga de configuración
comienzan a recibir solicitudes sin necesidad de pasar este sondeo primero.fails
passes
max_body
256k
.mode
always
— los servidores se sondean independientemente de su estado;idle
— los sondeos afectan a servidores no saludables y a servidores donde ha transcurrido interval
desde la última solicitud del cliente.onfail
— solo los servidores no saludables son sondeados.always
.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;
}
}
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 propio servidor alcanza el umbral max_fails.passes
; después de eso, se considera el umbral max_fails.Variables Integradas#
http_upstream_probe
admite las siguientes variables integradas:$upstream_probe
(PRO)#$upstream_probe_body
(PRO)#max_body
.