17 puntos por xguru 2022-01-06 | 1 comentarios | Compartir por WhatsApp
  • Método de actualización que usa Nginx

→ Reemplazar el ejecutable del archivo original por uno nuevo

→ Enviar la señal USR2 al proceso maestro

→ El proceso maestro cambia el archivo de su propio ID de proceso a la extensión .oldbin

→ Inicia el nuevo ejecutable para que cree nuevos procesos worker

→ Todos los procesos worker empiezan a recibir solicitudes

→ Cuando se envía la señal WINCH al primer proceso maestro, este pide a sus procesos worker que terminen de forma ordenada

  • El proceso maestro existente no cierra el socket de escucha y, si hace falta, puede volver a crear procesos worker

  • Si el nuevo proceso maestro no funciona correctamente

→ Enviar la señal HUP al proceso maestro existente para que inicie nuevos procesos worker y, después de que terminen los workers del nuevo maestro, enviar QUIT al nuevo maestro para finalizarlo

→ Enviar la señal TERM al nuevo proceso maestro para pedir a sus procesos worker actuales que se detengan de inmediato. Si el nuevo maestro muere, el maestro existente inicia nuevos procesos worker

  • Cuando el nuevo proceso maestro termina de esta manera, el proceso maestro existente elimina la extensión .oldbin

  • Si la actualización tiene éxito, enviar la señal QUIT al proceso maestro existente para terminarlo y dejar solo el nuevo proceso

1 comentarios

 
xguru 2022-01-06

Caddy 1 también usa este método

El método de Hot Restart de Envoy https://envoyproxy.io/docs/envoy/…

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