17 pontos por xguru 2022-01-06 | 1 comentários | Compartilhar no WhatsApp
  • Método de upgrade usado pelo Nginx

→ substituir o executável do arquivo original por um novo

→ enviar o sinal USR2 para o processo mestre

→ o processo mestre renomeia seu próprio arquivo de ID de processo com a extensão .oldbin

→ iniciar o novo executável para que ele crie novos processos worker

→ todos os processos worker começam a receber requisições

→ quando o sinal WINCH é enviado ao primeiro processo mestre, ele solicita que seus processos worker sejam encerrados normalmente

  • O processo mestre existente não fecha o socket de escuta e, se necessário, pode criar processos worker novamente

  • Caso o novo processo mestre não funcione corretamente

→ enviar o sinal HUP ao processo mestre existente para que ele inicie novos processos worker e, depois que os workers do novo processo mestre forem encerrados, enviar QUIT ao novo mestre para encerrá-lo

→ enviar o sinal TERM ao novo processo mestre para solicitar que os processos worker atuais parem imediatamente. Se o novo mestre morrer, o mestre existente iniciará novos processos worker

  • Quando o novo processo mestre é encerrado dessa forma, o processo mestre existente remove a extensão .oldbin

  • Se o upgrade for bem-sucedido, enviar o sinal QUIT ao processo mestre existente para encerrá-lo e deixar apenas o novo processo em execução

1 comentários

 
xguru 2022-01-06

O Caddy 1 também usa esse método

Método de Hot Restart do Envoy https://envoyproxy.io/docs/envoy/…

HAProxy Seamless Reload https://haproxy.com/blog/…