Eu tenho o nginx 1.6.2 com configuração para atualizar a conexão para o websocket.
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
Quando nenhuma conexão websocket é aberta, "service nginx stop" funciona, tanto o processo mestre quanto o de trabalho são interrompidos normalmente.
killproc $prog -QUIT
Mas quando tenho um websocket aberto, o nginx não pode ser interrompido, mesmo que eu receba:
Stopping nginx: [ OK ]
Tentei :
killproc $prog -KILL
mas, como esperado, ele mata o mestre à força na primeira vez que executo o comando e o trabalhador se eu executar novamente.
O que você recomenda para forçar o desligamento do nginx? Estou pensando em substituir killproc por:
pkill $prog
Responder1
http://nginx.org/en/docs/control.html
Tente usar TERM
ou INT
em vez de KILL
.
KILL
é muito "rápido", não dá ao mestre do nginx a chance de parar os trabalhadores.