Eu tenho um proxy reverso nginx que solicita proxies de um ELB externo da amazon para ELBs internos.
Eu tenho 6 instâncias de back-end que lida com os pedidos. As configurações ativadas pelo site são assim, mas existem números de porta e proxy_pass diferentes. Tudo o resto é idêntico:
server {
listen 3000;
location / {
proxy_pass http://internal-prod732r8-PrivateE-1GJ070M0745TT-348518554.eu-west-1.elb.amazonaws.com:3000;
include /etc/nginx/proxy.conf;
}
}
Uma vez a cada 24 horas, uma das configurações para de funcionar. Todos os outros proxies funcionam bem. Se eu reiniciar o nginx, todas as configurações funcionarão novamente. Não há nada no error.log, nada estranho no log de acesso, syslog ou dmesg.
Isso é algo conhecido? Fiz algo errado com minhas configurações de proxy? Existem outros registros nos quais posso procurar?
nginx
reverse-proxy
user202172
fonte
fonte
Respostas:
A resposta a esta pergunta é que os ELBs às vezes alteram os endereços IP e o nginx resolve o nome durante o início.
Para corrigir isso, sempre há um servidor DNS na sua VPC em 0,2. Portanto, se o CIDR de ip local for 10.0.0.0/16, o servidor DNS estará em 10.0.0.2.
Adicione isso à configuração do nginx.
O proxy_pass também precisa ser definido como uma variável, caso contrário, o nginx a resolverá apenas uma vez. Portanto, com base na configuração acima, esta é a configuração correta:
fonte
Se seu proxy_pass não passou diretamente para um URL, como mostra o exemplo ( http://amazonaws.com ), mas para um farm upstream de proxy, como este:
Então você ficará menos preocupado com uma das atualizações posteriores que falharão temporariamente. Porque todos eles estarão fazendo o mesmo trabalho. Se um não responder, o próximo será enviado por proxy para essa resposta. Paz de espírito.
O Nginx ignorará automaticamente uma máquina com falha por x segundos. Até você repará-lo ou até ele retornar por si só. ( http://wiki.nginx.org/HttpUpstreamModule )
Portanto, seja qual for o motivo de suas interrupções, distribuindo-as em um farm upstream, isso se converte em uma configuração mais fácil.
fonte