- 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
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/…