Upstream Probe#
O módulo implementa sondas de saúde ativas
para stream_upstream. Nota De acordo com a RFC 2616 (HTTP/1.1) e RFC 9110 (HTTP Semantics), os cabeçalhos HTTP
devem ser separados por uma sequência CRLF ( Adicionado na versão 1.4.0: PRO Padrão — server Define uma sonda de saúde ativa para servidores dentro do grupo upstream
especificado na diretiva proxy_pass
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 fazer uso das 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. Número de porta alternativo para a requisição da sonda. Intervalo entre sondas.
Por padrão — A condição para a sonda, definida como uma string de variáveis.
Se a substituição das variáveis resultar em Se definido, o estado inicial do servidor está sendo verificado, então o servidor
não recebe requisições de clientes até que a sonda seja aprovada. Definir este parâmetro requer habilitar Número de sondas falhadas subsequentes que
tornam o servidor não saudável.
Por padrão — 1. Número de sondas aprovadas subsequentes que
tornam o servidor saudável.
Por padrão — 1. Tamanho máximo de memória para a resposta. Se um
valor zero for especificado, a espera por resposta é desabilitada.
Por padrão — Modo da sonda, dependendo da saúde dos servidores: Por padrão — Se especificado, o protocolo UDP é usado para sondagem.
Por padrão, TCP é usado para sondagem. Dados enviados para a verificação;
isso pode ser uma string com o prefixo Exemplo: Detalhes da operação da sonda: Inicialmente, o servidor não receberá requisições de clientes
até que passe em todas as sondas O servidor é considerado não saudável e não receberá requisições de clientes,
se qualquer das sondas configuradas para ele atingir Para um servidor não saudável ser considerado saudável novamente,
todas as sondas configuradas para ele devem atingir seus respectivos O módulo Nome da upstream_probe atualmente ativa. Conteúdo da resposta recebida durante uma sonda ativa configurada por
upstream_probe.Exemplo de Configuração#
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
) ao invés de apenas
n
.Diretivas#
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
onde a diretiva upstream_probe
está localizada.upstream_probe
e todos os parâmetros que
afetam como os upstreams são usados pelo contexto server
onde está definido,
incluindo a diretiva proxy_next_upstream.name
port
interval
5s
.test
""
ou "0"
,
a sonda não é aprovada.essential
persistent
essential
primeiro;
servidores persistent
que foram considerados saudáveis antes de um
recarregamento de configuração
começam a receber requisições sem serem obrigados a passar nesta sonda primeiro.fails
passes
max_response
256k
.mode
always
— 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
.udp
send
data:
ou um nome de arquivo com dados
(especificado absolutamente ou relativo ao diretório /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
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 servidor atingir max_fails.passes
;
depois disso, max_fails também é considerado.Variáveis Integradas#
stream_upstream
suporta as seguintes variáveis integradas:$upstream_probe
(PRO)#$upstream_probe_response
(PRO)#