जब Node.js अनुप्रयोगों को स्केल करने और अनुकूलित करने की बात आती है, तो NGINX उच्च ट्रैफ़िक को संभालने, स्थिर फ़ाइलों को कुशलतापूर्वक परोसने और लोड बैलेंसर के रूप में कार्य करने में महत्वपूर्ण भूमिका निभाता है। एनजीआईएनएक्स, एक उच्च-प्रदर्शन वेब सर्वर, रिवर्स प्रॉक्सी के रूप में भी कार्य कर सकता है, जो इसे कई सर्वरों में अनुरोध वितरित करने की अनुमति देता है। इस लेख में, हम बताएंगे कि एनजीआईएनएक्स क्या है, आपको इसका उपयोग नोड.जेएस के साथ क्यों करना चाहिए, और रिवर्स प्रॉक्सीिंग, लोड बैलेंसिंग और स्थिर सामग्री परोसने सहित विभिन्न कार्यों के लिए एनजीआईएनएक्स को कैसे कॉन्फ़िगर करें।
एनजीआईएनएक्स (उच्चारण "इंजन एक्स") एक शक्तिशाली वेब सर्वर और रिवर्स प्रॉक्सी है जिसे उच्च प्रदर्शन के साथ बड़ी संख्या में समवर्ती कनेक्शन को संभालने के लिए डिज़ाइन किया गया है। प्रारंभ में एक वेब सर्वर के रूप में निर्मित, एनजीआईएनएक्स की बहुमुखी प्रतिभा ने इसे लोड संतुलन, रिवर्स प्रॉक्सीिंग और स्थिर फ़ाइलों की सेवा के लिए विस्तारित किया है।
Node.js के साथ NGINX का उपयोग क्यों करें?
Node.js के लिए NGINX को कॉन्फ़िगर करने के लिए, इन चरणों का पालन करें:
सबसे पहले, आपको अपने सर्वर पर एनजीआईएनएक्स इंस्टॉल करना होगा। अपने ऑपरेटिंग सिस्टम के आधार पर निम्नलिखित कमांड का उपयोग करें:
उबंटू/डेबियन के लिए:
sudo apt update sudo apt install nginx
CentOS/RHEL के लिए:
sudo yum install nginx
इंस्टॉलेशन के बाद, आप निम्नलिखित कमांड के साथ एनजीआईएनएक्स शुरू कर सकते हैं:
sudo systemctl start nginx
आप ब्राउज़र में अपने सर्वर के आईपी पते पर जाकर सत्यापित कर सकते हैं कि एनजीआईएनएक्स चल रहा है। यदि एनजीआईएनएक्स काम कर रहा है, तो आपको एक डिफ़ॉल्ट एनजीआईएनएक्स स्वागत पृष्ठ दिखाई देगा।
एनजीआईएनएक्स को रिवर्स प्रॉक्सी के रूप में सक्षम करने के लिए, इसे क्लाइंट अनुरोधों को नोड.जेएस एप्लिकेशन पर अग्रेषित करने की अनुमति देने के लिए, हमें तदनुसार एनजीआईएनएक्स को कॉन्फ़िगर करने की आवश्यकता है।
यहां लोकलहोस्ट:3000 पर चल रहे Node.js एप्लिकेशन के लिए NGINX कॉन्फ़िगरेशन का एक उदाहरण दिया गया है।
cd /etc/nginx/sites-available/
sudo nano nodeapp.conf
server { listen 80; server_name your_domain_or_IP; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
sudo ln -s /etc/nginx/sites-available/nodeapp.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
यह सेटअप पोर्ट 80 पर आने वाले सभी ट्रैफ़िक को पोर्ट 3000 पर चल रहे आपके Node.js एप्लिकेशन पर रूट कर देगा।
जब आपका Node.js एप्लिकेशन बढ़ता है, तो ट्रैफ़िक को संभालने के लिए एक भी उदाहरण पर्याप्त नहीं हो सकता है। एनजीआईएनएक्स को एक लोड बैलेंसर के रूप में कॉन्फ़िगर किया जा सकता है, जो कई नोड.जेएस उदाहरणों में ट्रैफ़िक वितरित करता है।
यहां बताया गया है कि आप लोड संतुलन के लिए एनजीआईएनएक्स को कैसे कॉन्फ़िगर कर सकते हैं:
sudo nano /etc/nginx/sites-available/nodeapp.conf
upstream node_backend { server localhost:3000; server localhost:3001; server localhost:3002; } server { listen 80; server_name your_domain_or_IP; location / { proxy_pass http://node_backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
sudo nginx -t sudo systemctl restart nginx
स्पष्टीकरण:
यह सेटअप कई Node.js उदाहरणों में लोड को समान रूप से वितरित करता है, स्केलेबिलिटी और दोष सहनशीलता में सुधार करता है।
छवियां, सीएसएस और जावास्क्रिप्ट जैसी स्थिर फ़ाइलें परोसना आपके Node.js एप्लिकेशन पर बोझ डाल सकता है। एनजीआईएनएक्स सीधे स्थैतिक परिसंपत्तियों की सेवा करके प्रदर्शन में सुधार करके इस जिम्मेदारी से छुटकारा पा सकता है।
sudo mkdir -p /var/www/html/static
अपनी स्थिर फ़ाइलें (सीएसएस, छवियां, जेएस) को इस निर्देशिका में ले जाएं।
स्थैतिक फ़ाइलों की सेवा के लिए अपना एनजीआईएनएक्स कॉन्फ़िगरेशन (nodeapp.conf) अपडेट करें:
server { listen 80; server_name your_domain_or_IP; location /static/ { root /var/www/html; } location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
sudo nginx -t sudo systemctl restart nginx
स्पष्टीकरण:
क्लाइंट और सर्वर के बीच सुरक्षित संचार महत्वपूर्ण है, और एसएसएल (सिक्योर सॉकेट लेयर) वह एन्क्रिप्शन प्रदान करता है। एनजीआईएनएक्स एसएसएल समाप्ति को संभाल सकता है, जिसका अर्थ है कि यह HTTPS अनुरोधों को Node.js एप्लिकेशन में भेजने से पहले उनके एन्क्रिप्शन और डिक्रिप्शन को संभालता है।
यहां बताया गया है कि आप एसएसएल को एनजीआईएनएक्स के साथ कैसे कॉन्फ़िगर कर सकते हैं:
एक एसएसएल प्रमाणपत्र प्राप्त करें। आप लेट्स एनक्रिप्ट से निःशुल्क एसएसएल प्रमाणपत्र प्राप्त कर सकते हैं या किसी अन्य प्रमाणपत्र प्राधिकरण का उपयोग कर सकते हैं।
एसएसएल सक्षम करने के लिए अपने एनजीआईएनएक्स कॉन्फ़िगरेशन को संशोधित करें:
server { listen 443 ssl; server_name your_domain_or_IP; ssl_certificate /etc/ssl/certs/your_domain.crt; ssl_certificate_key /etc/ssl/private/your_domain.key; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } server { listen 80; server_name your_domain_or_IP; # Redirect all HTTP requests to HTTPS return 301 https://$host$request_uri; }
sudo nginx -t sudo systemctl restart nginx
स्पष्टीकरण:
एनजीआईएनएक्स आपके नोड.जेएस अनुप्रयोगों के प्रदर्शन, स्केलेबिलिटी और सुरक्षा में सुधार के लिए एक शक्तिशाली उपकरण है। लोड संतुलन से लेकर स्थिर फ़ाइलों की सेवा और एसएसएल समाप्ति को संभालने तक, एनजीआईएनएक्स नोड.जेएस से कई कार्यों को ऑफलोड करता है, जिससे आपके एप्लिकेशन को उस पर ध्यान केंद्रित करने की अनुमति मिलती है जो वह सबसे अच्छा करता है: व्यावसायिक तर्क को संभालना। इस आलेख में दिए गए कॉन्फ़िगरेशन के साथ, आप अपने Node.js एप्लिकेशन की दक्षता और विश्वसनीयता बढ़ाने के लिए NGINX सेट कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3