17 points par xguru 2022-01-06 | 1 commentaires | Partager sur WhatsApp
  • Méthode de mise à niveau utilisée par Nginx

→ remplacer le fichier exécutable d’origine par le nouveau

→ envoyer le signal USR2 au processus maître

→ le processus maître renomme son fichier d’ID de processus avec l’extension .oldbin

→ démarrer le nouvel exécutable afin qu’il crée de nouveaux processus workers

→ tous les processus workers commencent à recevoir des requêtes

→ lorsqu’un signal WINCH est envoyé au premier processus maître, il demande à ses processus workers de s’arrêter proprement

  • Le processus maître existant ne ferme pas le socket d’écoute et peut recréer des processus workers si nécessaire

  • Si jamais le nouveau processus maître ne fonctionne pas correctement

→ envoyer un signal HUP à l’ancien processus maître pour qu’il démarre de nouveaux processus workers, puis après l’arrêt des workers du nouveau maître, envoyer QUIT au nouveau maître pour l’arrêter

→ envoyer un signal TERM au nouveau processus maître pour demander à ses workers actuels de s’arrêter immédiatement. Si le nouveau maître meurt, l’ancien maître redémarre de nouveaux workers

  • Quand le nouveau processus maître se termine ainsi, l’ancien processus maître supprime l’extension .oldbin

  • Si la mise à niveau réussit, envoyer le signal QUIT à l’ancien processus maître pour l’arrêter et ne laisser que le nouveau processus

1 commentaires

 
xguru 2022-01-06

Caddy 1 utilise aussi cette méthode

La méthode de redémarrage à chaud d’Envoy https://envoyproxy.io/docs/envoy/…

Rechargement transparent de HAProxy https://haproxy.com/blog/…