DevOps के लिए NGINX कॉन्फ़िगरेशन: सर्वरियन की शून्य-डाउनटाइम तैनाती की तरकीब
शून्य डाउनटाइम परिनियोजन इसका मतलब है कि सेवा में बाधा डाले बिना अपने एप्लिकेशन को अपडेट करना - व्यवसायों के लिए यह बहुत ज़रूरी है, जहाँ एक छोटी सी रुकावट भी लाखों का नुकसान कर सकती है। NGINX अपने मास्टर-वर्कर प्रोसेस मॉडल और स्मार्ट सिग्नल जैसे का उपयोग करके इसे संभव बनाता है यूएसआर2 (नई प्रक्रियाएं शुरू करें) और हांक देना (कॉन्फ़िगरेशन पुनः लोड करें)। यहाँ कुंजी है:
- यह काम किस प्रकार करता है: NGINX बिना कनेक्शन को छोड़े पुराने वर्कर्स से अपडेटेड वर्कर्स तक ट्रैफिक को स्थानांतरित करता है।
- मुख्य कदम: संकेतों का उपयोग करें (
यूएसआर2,हांक देना, आदि), कॉन्फ़िगर करेंnginx.confपुनः लोड करने से पहले परिवर्तनों को ठीक से सत्यापित करें और उन्हें मान्य करें। - TECHNIQUESनिर्बाध अद्यतन के लिए NGINX को ब्लू-ग्रीन परिनियोजन या डॉकर जैसी विधियों के साथ संयोजित करें।
- स्वास्थ्य जांच: NGINX की निष्क्रिय या सक्रिय स्वास्थ्य जांच का उपयोग करके सुनिश्चित करें कि केवल स्वस्थ सर्वर ही ट्रैफ़िक को संभालें।
सही कॉन्फ़िगरेशन के साथ, आप अपडेट के दौरान अपनी सेवाओं को सुचारू रूप से चालू रख सकते हैं, राजस्व की रक्षा कर सकते हैं और ग्राहकों का विश्वास बनाए रख सकते हैं।
शून्य-डाउनटाइम परिनियोजन के लिए NGINX मूल बातें

शून्य-डाउनटाइम परिनियोजन की व्याख्या
NGINX सेवा को बाधित किए बिना अपडेट को संभालने के लिए मास्टर-वर्कर मॉडल का उपयोग करता है। मास्टर प्रक्रिया कॉन्फ़िगरेशन और नियंत्रण की देखरेख करती है, जबकि वर्कर प्रक्रियाएँ क्लाइंट कनेक्शन प्रबंधित करती हैं। यह सेटअप अपडेट के दौरान ट्रैफ़िक को पुराने वर्कर से नए वर्कर में सहजता से स्थानांतरित करने की अनुमति देता है, जिससे निर्बाध सेवा सुनिश्चित होती है।
एनजीआईएनएक्स कनेक्शन प्रबंधन
NGINX अपग्रेड या कॉन्फ़िगरेशन परिवर्तन के दौरान प्रक्रियाओं को नियंत्रित करने के लिए विशिष्ट संकेतों पर निर्भर करता है:
- यूएसआर2: नई मास्टर और कार्यकर्ता प्रक्रियाएँ प्रारंभ करता है।
- चरखी: पुरानी कार्यकर्ता प्रक्रियाओं को सुचारू रूप से रोकता है।
- हांक देना: कॉन्फ़िगरेशन को पुनः लोड करता है और वर्कर्स को प्रतिस्थापित करता है.
- छोड़ना: मास्टर और वर्कर्स को सुचारू रूप से बंद कर देता है।
पुनः लोड करते समय, NGINX पुरानी मास्टर प्रक्रिया आईडी को स्थानांतरित कर देता है /रन/nginx.pid.oldbin, नई मास्टर प्रक्रिया आईडी लिखता है /रन/nginx.pid, और पुराने कर्मचारियों को बंद होने से पहले सक्रिय अनुरोधों को पूरा करने की अनुमति देता है।
आधुनिक ऐप परिनियोजन: NGINX और JFrog का उपयोग कैसे करें ...

निरंतर संचालन के लिए NGINX की स्थापना
पुनः लोड के दौरान कनेक्शन को सक्रिय रखने के लिए, निम्नलिखित सेटिंग्स के साथ NGINX के मास्टर-वर्कर आर्किटेक्चर का लाभ उठाएं।
प्रमुख NGINX कॉन्फ़िगरेशन चरण
चालू करो बहु_स्वीकार वर्कर्स को प्रति इवेंट कई कनेक्शन संभालने देने के लिए। यहाँ एक उदाहरण कॉन्फ़िगरेशन है nginx.conf:
worker_processes auto; pid /run/nginx.pid; events { worker_connections 1024; multi_accept on; } http { upstream backend { server backend1.example.com:8080; server backend2.example.com:8080; keepalive 32; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } डाउनटाइम के बिना कॉन्फ़िगरेशन पुनः लोड करना
- परिवर्तन लागू करने के लिए वर्तमान कार्यकर्ताओं को पुनः लोड करें:
nginx -s पुनः लोड करें - अद्यतन मास्टर प्रक्रिया आईडी की जाँच करें:
बिल्ली /run/nginx.pid - ट्रैफ़िक रोके बिना बाइनरी अपग्रेड करें:
kill -USR2 $(cat /run/nginx.pid) kill -WINCH $(cat /run/nginx.pid.oldbin)
इन कदमों से पुराने और नए कर्मचारियों के बीच यातायात का सुचारू रूप से आवागमन संभव हो सकेगा, जिससे निर्बाध सेवा सुनिश्चित होगी।
एसबीबी-आईटीबी-59e1987
NGINX के साथ परिनियोजन विधियाँ
आप ब्लू-ग्रीन सेटअप या कंटेनर-आधारित दृष्टिकोण जैसी तकनीकों का लाभ उठाकर शून्य-डाउनटाइम परिनियोजन प्राप्त करने के लिए NGINX का उपयोग कर सकते हैं।
ब्लू-ग्रीन परिनियोजन सेटअप
NGINX के साथ, आप दो वातावरणों के बीच ट्रैफ़िक का प्रबंधन कर सकते हैं - जिसे आमतौर पर कहा जाता है नीला तथा हराये सभी वातावरण एक जैसे हैं, लेकिन एक समय में केवल एक ही सक्रिय होता है। यह इस प्रकार काम करता है:
- अद्यतन संस्करण को निष्क्रिय वातावरण (जैसे, हरा) में तैनात करें।
- यह सुनिश्चित करने के लिए कि नया संस्करण ठीक से काम कर रहा है, स्वास्थ्य जांच चलाएँ।
- एक बार सत्यापित हो जाने पर, अपडेट करें एनजीआईएनएक्स कॉन्फ़िगरेशन ट्रैफ़िक को अद्यतन वातावरण में रूट करने के लिए।
- का उपयोग करके कॉन्फ़िगरेशन को पुनः लोड करें
हांक देनाकिसी भी सक्रिय कनेक्शन को टूटने से बचाने के लिए सिग्नल का उपयोग करें।
यह विधि सेवा में किसी रुकावट के बिना सुचारू परिवर्तन सुनिश्चित करती है।
डॉकर और एनजीआईएनएक्स एकीकरण
NGINX के साथ Docker का उपयोग करने से आपके एप्लिकेशन और प्रॉक्सी लेयर दोनों के लिए सुसंगत वातावरण बनाए रखकर परिनियोजन को सुव्यवस्थित किया जा सकता है। यहां बताया गया है कि आप शून्य-डाउनटाइम अपडेट कैसे प्राप्त कर सकते हैं:
- वर्तमान सक्रिय कंटेनर के साथ नया कंटेनर लॉन्च करें।
- यह पुष्टि करने के लिए कि नया कंटेनर तैयार है, स्वास्थ्य जांच करें।
- नए कंटेनर को शामिल करने के लिए NGINX अपस्ट्रीम कॉन्फ़िगरेशन को संशोधित करें।
- कॉन्फ़िगरेशन को पुनः लोड करें
हांक देनाइससे पुराने कर्मचारियों को बाहर निकलने से पहले प्रसंस्करण कार्य पूरा करने का मौका मिल जाता है।
यह दृष्टिकोण आपके एप्लिकेशन को अपडेट करते समय निर्बाध सेवा सुनिश्चित करता है।
परीक्षण और सत्यापन
स्वास्थ्य जांच कॉन्फ़िगर करें
NGINX स्वास्थ्य जांच यह सुनिश्चित करने में मदद करती है कि केवल कार्यात्मक सर्वर ही ट्रैफ़िक को संभालें। ये जाँच अपस्ट्रीम कॉन्फ़िगरेशन और ब्लू-ग्रीन रूटिंग के साथ काम करती हैं। NGINX दो प्रकार की स्वास्थ्य जाँच प्रदान करता है: निष्क्रिय (एनजीआईएनएक्स ओपन सोर्स में उपलब्ध) और सक्रिय (एनजीआईएनएक्स प्लस के लिए विशेष)।
एनजीआईएनएक्स ओपन सोर्स में निष्क्रिय स्वास्थ्य जांच के लिए, अपने अपस्ट्रीम ब्लॉक को इस तरह सेट करें:
अपस्ट्रीम बैकएंड { सर्वर backend1.serverion.com:8080 max_fails=3 fail_timeout=30s; सर्वर backend2.serverion.com:8080 max_fails=3 fail_timeout=30s; ज़ोन बैकएंड 64k; } यदि आप NGINX Plus का उपयोग कर रहे हैं, तो आप इसे जोड़कर सक्रिय स्वास्थ्य जांच सक्षम कर सकते हैं स्वास्थ्य_जांच निर्देश के साथ-साथ मिलान अवरोध पैदा करना:
स्थान / { proxy_pass http://backend; स्वास्थ्य_जांच अंतराल=5s विफल=3 पास=2 अनिवार्य स्थायी; स्वास्थ्य_जांच से मिलान करें { स्थिति 200; हेडर सामग्री-प्रकार = एप्लिकेशन/json; बॉडी ~ '"स्थिति":"UP"'; } } NGINX को पुनः लोड करने से पहले इन कॉन्फ़िगरेशन को सत्यापित करना सुनिश्चित करें।
कॉन्फ़िगरेशन मान्य करें
पुनः लोड करने से पहले हमेशा अपने NGINX कॉन्फ़िगरेशन की शुद्धता की जाँच करें। निम्न कमांड का उपयोग करें:
nginx -t -c /path/to/your/nginx.conf शून्य-डाउनटाइम परिनियोजन अनिवार्यताएं
शून्य-डाउनटाइम परिनियोजन प्राप्त करना सावधानीपूर्वक NGINX कॉन्फ़िगरेशन और ठोस बुनियादी ढाँचे की योजना पर निर्भर करता है। ये तत्व बिना किसी रुकावट के अपडेट सुनिश्चित करने के लिए एक साथ काम करते हैं।
सफलता के प्रमुख कारक इस प्रकार हैं:
- प्रक्रिया नियंत्रण और कॉन्फ़िगरेशन सत्यापन: गहन परीक्षण प्रोटोकॉल का पालन करते हुए NGINX की वास्तुकला का पूरा लाभ उठाएं।
- बुनियादी ढांचे की स्थिरता: संपूर्ण परिनियोजन प्रक्रिया के दौरान निरंतर प्रदर्शन बनाए रखें और सुरक्षा कड़ी बनाए रखें।
स्वास्थ्य जांच और रोलबैक चरणों के विवरण के लिए, देखें परीक्षण और सत्यापन अनुभाग।
Serverionका प्लेटफ़ॉर्म विश्वसनीय स्थिरता और सुरक्षा के साथ इन प्रयासों का समर्थन करता है। वैश्विक डेटा केंद्र अपडेट के दौरान प्रदर्शन को स्थिर बनाए रखें, और अंतर्निहित DDoS सुरक्षा सुनिश्चित करती है कि सुरक्षा बरकरार रहे।
गैर-महत्वपूर्ण सेवाओं पर फ़ीचर टॉगल का उपयोग करके छोटी शुरुआत करें। अपनी रणनीति के केंद्र में नियमित परीक्षण, नज़दीकी निगरानी और स्पष्ट रोलबैक योजनाओं को रखते हुए धीरे-धीरे आगे बढ़ें।
संबंधित ब्लॉग पोस्ट
- इष्टतम वेब सर्वर प्रदर्शन के लिए Nginx कॉन्फ़िगरेशन में महारत हासिल करना
- एनजीआईएनएक्स कॉन्फ़िगरेशन में महारत हासिल करना: सर्वरियन कैसे बी2बी वेब होस्टिंग की सफलता को अनलॉक करता है
- NGINX कॉन्फ़िगरेशन रिवाइंड: सर्वरियन ने प्रॉक्सी कैश ट्यूनिंग की खोई हुई कला को पुनर्जीवित किया
- भूला हुआ NGINX कॉन्फ़िगरेशन फ्रंटियर: सर्वरियन का फास्टसीजीआई माइक्रोकैशिंग में गोता