Estou usando o nginx como um balanceador de carga na frente das instâncias do servidor da web. Eu corro 4 instâncias do servidor web e distribuo o tráfego igualmente entre elas usando o nginx. Quando estou implantando uma nova versão - altero o nginx.conf e marquei primeiro os 2 dos 4 servidores e, em seguida, reinicio o nginx. Eu atualizo o código do servidor e reinicio os 2 primeiros servidores. Depois edito o nginx.conf para indicar que os 2 primeiros servidores estão ativos e marquei os outros 2 como inativos, e reinicio novamente o nginx. Então eu atualizo e reinicio outras duas instâncias. Atualize novamente o nginx.conf marcando todos os servidores e reinicie o final do nginx.
Eu tenho que fazer esse processo várias vezes em alguns dias. A execução manual das etapas acima sempre é passível de erros.
Existe um acesso programático ao nginx / nginx.conf para que eu possa automatizar esse processo?
[A única maneira que imagino agora é escrever as etapas acima no shell script]
fail_timeout
como 5s em cada um de vocês, retire dois deles e o NGINX o capturará e redirecionará todo o tráfego para os dois segundos nós. Atualize seu código, aguarde 5 segundos (ou qualquer que seja o valor do tempo limite) e o NGINX começará a usar os dois primeiros servidores, depois desative os dois e repita. NGINX joga muito bem com esse tipo de configuraçãoRespostas:
Não, o nginx não possui uma API de configuração.
Embora haja casos em que talvez seja necessário marcar manualmente os servidores como inativos, geralmente a configuração de proxy_next_upstream + fail_timeout funcionará.
fonte
Agora existe o nginx-conf , um módulo NPM que fornece acesso programático às configurações do nginx.
fonte