Upstream Probe#
O módulo implementa sondas de saúde ativas
para Upstream. Padrão — location Define uma sonda de saúde ativa para servidores dentro dos grupos upstream
que são especificados em proxy_pass, uwsgi_pass e diretivas similares
no mesmo contexto Um servidor passa na sonda se a requisição para ele for bem-sucedida, considerando todas
as configurações de parâmetros da diretiva Para usar as sondas,
o upstream deve ter uma zona de memória compartilhada (zone).
Um upstream pode ser configurado com várias sondas. Os seguintes parâmetros são aceitos: Nome obrigatório da sonda. URI da requisição a ser anexado ao argumento de proxy_pass,
uwsgi_pass, etc. Por padrão — Número de porta alternativo para a requisição da sonda. Intervalo entre sondas. Por padrão — Método HTTP da requisição da sonda. Por padrão — A condição a ser verificada durante a requisição; definida como uma string com variáveis.
Se a substituição de variável resultar em Se definido, o estado inicial do servidor está sujeito à verificação
e requisições de cliente não são encaminhadas para ele até que a sonda seja aprovada. Definir este parâmetro requer habilitar Número de requisições consecutivas falhadas que
tornam o servidor não saudável. Por padrão — 1. Número de requisições consecutivas bem-sucedidas que
tornam o servidor saudável. Por padrão — 1. Quantidade máxima de memória para o corpo da resposta. Por padrão — Modo da sonda, dependendo da saúde dos servidores: Por padrão — Exemplo: Detalhes da operação da sonda: Inicialmente, o servidor não receberá requisições de cliente
até que passe em todas as sondas O servidor é considerado não saudável e não receberá requisições de cliente
se qualquer das sondas configuradas para ele atingir seu limite Para um servidor não saudável ser considerado saudável novamente,
todas as sondas configuradas para ele devem atingir seus respectivos limites O módulo Nome da upstream_probe atualmente ativa. Corpo da resposta do servidor
recebido durante uma upstream_probe;
seu tamanho é limitado por Exemplo de Configuração#
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;
}
}
Diretivas#
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 da diretiva upstream_probe.
O Angie executa regularmente requisições de acordo com os parâmetros especificados
para cada servidor no grupo upstream.upstream_probe e todos os parâmetros que
controlam como os upstreams são usados pelo contexto location onde é definido.
Isso inclui as diretivas proxy_next_upstream e uwsgi_next_upstream,
etc., bem como proxy_set_header e assim por diante.nameuri/.portinterval5s.methodGET.test"" ou "0",
a sonda falha.essentialpersistentessential primeiro;
servidores persistent que estavam funcionando antes de um
recarregamento de configuração
começam a receber requisições sem serem obrigados a passar nesta sonda primeiro.failspassesmax_body256k.modealways — servidores são sondados independentemente de seu estado;idle — sondas afetam servidores não saudáveis e servidores onde
interval passou desde a última requisição do cliente.onfail — apenas servidores não saudáveis são sondados.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 configuradas para ele
(pulando as persistent se a configuração foi recarregada
e o servidor foi considerado saudável antes disso).
Se não há tais sondas, o servidor é considerado saudável.fails
ou o próprio servidor atingir o limite max_fails.passes;
depois disso, o limite max_fails é considerado.Variáveis Integradas#
http_upstream_probe suporta as seguintes variáveis integradas:$upstream_probe (PRO)#$upstream_probe_body (PRO)#max_body.