17 पॉइंट द्वारा xguru 2022-01-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Nginx जिस upgrade तरीके का उपयोग करता है

→ मूल फ़ाइल के executable को नए वाले से बदलना

→ master process को USR2 signal भेजना

→ master process अपनी process ID फ़ाइल को .oldbin extension से बदल देता है

→ नए executable को शुरू करके नए worker process बनवाता है

→ सभी worker process request लेना शुरू करते हैं

→ जब पहले master process को WINCH signal भेजा जाता है, तो वह अपने worker process से सामान्य रूप से बंद होने का अनुरोध करता है

  • मौजूदा master process listen socket को बंद नहीं करता, और ज़रूरत पड़ने पर फिर से worker process बना सकता है

  • अगर नया master process ठीक से काम नहीं करता है

→ मौजूदा master process को HUP signal भेजकर नए worker process शुरू करवाए जाते हैं, और नए master process के worker बंद होने के बाद नए master को QUIT भेजकर उसे बंद किया जाता है

→ नए master process को TERM signal भेजकर उसके मौजूदा worker process से तुरंत रुकने का अनुरोध किया जाता है। नया master मर जाए तो पुराना master नए worker process शुरू करता है

  • इस तरह जब नया master process बंद हो जाता है, तो पुराना master process .oldbin extension हटा देता है

  • अगर upgrade सफल हो जाए, तो पुराने master process को QUIT signal भेजकर बंद कर दिया जाता है और केवल नया process बचता है

1 टिप्पणियां

 
xguru 2022-01-06

Caddy 1 भी इस तरीके का उपयोग करता है

Envoy की Hot Restart विधि https://envoyproxy.io/docs/envoy/…

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