Support Stream Upstream Health Check (TCP/UDP/HTTP) e forneça uma interface HTTP para obter status de back-end-Server "
Este módulo pode fornecer ao NGINX verificações de saúde do servidor de back -end ativo (tipos de verificação suportam TCP/UDP/HTTP).
clone git https://github.com/zhouchangxun/nginx/nginx.git clone git https://github.com/zhouchangxun/ngx_stream_upstream_check_module.git
CD nginx/; Git Aplicar ../ngx_stream_upstream_check_module/nginx-stable-1.12+.patch
./auto/configure ---with stream --add-module = ../ngx_stream_upstream_check_module/
Make && Make Install
stream {
upstream tcp - cluster {
# simple round-robin
server 192.168 .0 .1 : 22 ;
server 192.168 .0 . 2 : 22 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 default_down = true type = tcp ;
}
upstream udp - cluster {
# simple round-robin
server 192.168 .0 .3 : 53 ;
server 192.168 .0 . 4 : 53 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 default_down = true type = udp ;
}
upstream http - cluster {
# simple round-robin
server 192.168 .0 .5 : 80 ;
server 192.168 .0 . 6 : 80 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 type = http ;
check_keepalive_requests 100 ;
check_http_send "HEAD / HTTP/1.1 r n Connection: keep-alive r n r n " ;
check_http_expect_alive http_2xx http_3xx ;
}
server {
listen 522 ;
proxy_pass tcp - cluster ;
}
server {
listen 53 ;
proxy_pass udp - cluster ;
}
server {
listen 8080 ;
proxy_pass http - cluster ;
}
}
http {
server {
listen 80 ;
location / status {
l4check_status ;
}
}
}Sintaxe:
Intervalo de verificação = milissegundos [out = count] [rise = count] [timeout = milissegundos] [default_down = true | false] [type = tcp | udp | http] [porta = check_port]
Padrão: intervalo = 30000 outono = 5 aumento = 2 tempo limite = 1000 default_down = TIPO TRUE = TCP
Contexto: Stream/Upstream
Este comando pode ativar a função de verificação de saúde do servidor de back -end.
Intervalo: o intervalo entre os pacotes de verificação de saúde enviados para o back -end.
Fall (Fall_Count): Se o número de falhas consecutivas chegarem a Fall_Count, o servidor será considerado baixo.
Rise (rise_count): Se o número de sucessos atingir o rise_count, o servidor será considerado atualizado.
Tempo limite: o tempo limite da solicitação de saúde de back -end.
Default_down: define o status do servidor no início. Se for verdade, significa que o padrão está inativo. Se for falso, está em alta. O valor padrão é verdadeiro, o que significa que o servidor acredita inicialmente que está indisponível e só será considerado saudável depois que o pacote de verificação de saúde atingir um certo número de horários de sucesso.
Tipo: o tipo de pacote de verificação de saúde, agora suporta os seguintes tipos
Porta: especifique a porta de verificação do servidor de back -end. Você pode especificar a porta do servidor de back -end que é diferente do serviço real. Por exemplo, o back -end fornece um aplicativo com a porta 443. Você pode verificar o status da porta 80 para determinar o estado de saúde do back -end. O padrão é 0, o que significa o mesmo que a porta fornecida pelo servidor de back -end.
Sintaxe: check_keepalive_requests request_num
Padrão: 1
Contexto: Stream/Upstream
Esta instrução pode configurar o número de solicitações enviadas por uma conexão e seu valor padrão é 1, o que significa que o NGINX fecha a conexão após a conclusão de uma solicitação.
Sintaxe: check_http_send http_packet
Padrão: "Get / http / 1.0 r n r n"
Contexto: Stream/Upstream
Esta diretiva pode configurar o conteúdo da solicitação enviado pelo pacote de verificação de saúde HTTP. Para reduzir a quantidade de dados transmitidos, é recomendável usar o método "cabeça".
Ao usar uma conexão longa para verificação de saúde, você precisa adicionar o cabeçalho de solicitação de keep-alive a este comando, como: "Head / http / 1.1 r nConnection: Keep-alive r n r n". Ao mesmo tempo, ao usar o método "Get", o tamanho do URI solicitado não deve ser muito grande para garantir que ele possa ser transferido em 1 intervalo, caso contrário, será considerado como um servidor de back -end ou exceção de rede pelo módulo de verificação de saúde.
Sintaxe: check_http_expect_alive [http_2xx | http_3xx | http_4xx | http_5xx]
Padrão: http_2xx | http_3xx
Contexto: Stream/Upstream
Esta diretiva especifica o status bem -sucedido da resposta HTTP e, por padrão, o status de 2xx e 3xx é considerado saudável.
Sintaxe : check_shm_size tamanho
Padrão : 1m
Contex : Stream
Todos os status de verificação de saúde do servidor de back -end são armazenados na memória compartilhada, e esta instrução pode definir o tamanho da memória compartilhada. O padrão é 1m. Se você tiver mais de 1.000 servidores e tiver erros durante a configuração, pode ser necessário expandir o tamanho da memória.
Sintaxe: l4check_status [html | csv | json]
Padrão: l4check_status html
Contexto: http/servidor/localização