Eu uso o nginx como um proxy reverso. Sempre que eu atualizo a configuração usando
sudo "cp -r #{nginx_config_path}* /etc/nginx/sites-enabled/"
sudo "kill -s HUP `cat /var/run/nginx.pid`"
Enfrento um breve período de inatividade. Como posso evitar isso?
sites-enabled
, e não copiá-lo. Não está relacionado ao seu problema específico, mas você pode querer analisar isso.kill HUP
é a maneira de fazer uma recarga normal no nginx.Respostas:
Executar
service nginx reload
ou/etc/init.d/nginx reload
Ele fará um recarregamento quente da configuração sem tempo de inatividade. Se você tiver solicitações pendentes, haverá processos nginx remanescentes que manipularão essas conexões antes que elas morram, por isso é uma maneira extremamente elegante de recarregar as configurações.
Às vezes, você pode querer anexar com
sudo
fonte
SIGHUP
para o processo principal do nginx. Não deve haver diferença. nginx.org/en/docs/control.htmlcat $PIDFILE
|| echo -n "não é possível recarregar"service nginx reload
enginx -s reload
? Se eu rodar o primeiro, recebo esta saída:,Reloading nginx configuration: nginx.
mas minhas alterações não são atualizadas. Se eu executar o último, não recebo saída, mas minhas alterações são refletidas.log_not_found
diretiva, mas achei que realmente precisava reiniciar para que funcionasse. Eu acho que recarregar não funciona para todas as diretivas?Corre
/usr/sbin/nginx -s reload
Consulte http://wiki.nginx.org/CommandLine para obter mais opções de linha de comando.
fonte
Não, você está incorreto, não deveria estar enfrentando nenhum tempo de inatividade com o procedimento descrito. (O Nginx pode não apenas recarregar a configuração em tempo real sem tempo de inatividade, mas também a atualização do executável em tempo real, ainda sem tempo de inatividade.)
Conforme http://nginx.org/docs/control.html#reconfiguration , enviar o
HUP
sinal para o nginx garante que ele execute uma reinicialização normal e, se os arquivos de configuração estiverem incorretos, todo o procedimento será abandonado e você ' é deixado com o nginx como antes de enviar oHUP
sinal. Em nenhum momento deve ser possível qualquer tempo de inatividade.fonte
Geralmente, recarregar o arquivo de configuração de um serviço não deve afetar o serviço em execução. No entanto, isso depende de como o
SIGHUP
sinal é processado.Se um serviço específico estiver com um tempo de inatividade durante a recarga, isso poderá ser contornado executando o mesmo serviço em vários servidores, de preferência usando um balanceador de carga. Nesse caso, você pode remover um servidor de cada vez e recarregar / reiniciar. Em seguida, ele pode ser adicionado novamente após confirmar que está OK.
fonte