"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Node.js अनुप्रयोगों के लिए NGINX: इसका क्या, क्यों और कैसे उपयोग करें

Node.js अनुप्रयोगों के लिए NGINX: इसका क्या, क्यों और कैसे उपयोग करें

2024-11-04 को प्रकाशित
ब्राउज़ करें:374

NGINX for Node.js Applications: What, Why, and How to Use It

जब Node.js अनुप्रयोगों को स्केल करने और अनुकूलित करने की बात आती है, तो NGINX उच्च ट्रैफ़िक को संभालने, स्थिर फ़ाइलों को कुशलतापूर्वक परोसने और लोड बैलेंसर के रूप में कार्य करने में महत्वपूर्ण भूमिका निभाता है। एनजीआईएनएक्स, एक उच्च-प्रदर्शन वेब सर्वर, रिवर्स प्रॉक्सी के रूप में भी कार्य कर सकता है, जो इसे कई सर्वरों में अनुरोध वितरित करने की अनुमति देता है। इस लेख में, हम बताएंगे कि एनजीआईएनएक्स क्या है, आपको इसका उपयोग नोड.जेएस के साथ क्यों करना चाहिए, और रिवर्स प्रॉक्सीिंग, लोड बैलेंसिंग और स्थिर सामग्री परोसने सहित विभिन्न कार्यों के लिए एनजीआईएनएक्स को कैसे कॉन्फ़िगर करें।

एनजीआईएनएक्स क्या है?

एनजीआईएनएक्स (उच्चारण "इंजन एक्स") एक शक्तिशाली वेब सर्वर और रिवर्स प्रॉक्सी है जिसे उच्च प्रदर्शन के साथ बड़ी संख्या में समवर्ती कनेक्शन को संभालने के लिए डिज़ाइन किया गया है। प्रारंभ में एक वेब सर्वर के रूप में निर्मित, एनजीआईएनएक्स की बहुमुखी प्रतिभा ने इसे लोड संतुलन, रिवर्स प्रॉक्सीिंग और स्थिर फ़ाइलों की सेवा के लिए विस्तारित किया है।

Node.js के साथ NGINX का उपयोग क्यों करें?

  • कुशल लोड संतुलन: एनजीआईएनएक्स स्केलेबिलिटी को बढ़ाते हुए कई नोड.जेएस उदाहरणों में ट्रैफ़िक वितरित कर सकता है।
  • रिवर्स प्रॉक्सी: क्लाइंट और बैकएंड Node.js सर्वर के बीच एक मध्यस्थ सर्वर के रूप में कार्य करता है, जो एप्लिकेशन आर्किटेक्चर को छिपाने और अनुरोधों को संतुलित करने में मदद करता है।
  • स्थैतिक सामग्री प्रबंधन: एनजीआईएनएक्स छवियों, सीएसएस और जावास्क्रिप्ट जैसी स्थिर फ़ाइलों की सेवा कर सकता है, इस कार्य से नोड.जेएस को मुक्त कर सकता है और प्रदर्शन में सुधार कर सकता है।
  • एसएसएल समाप्ति: एनजीआईएनएक्स एसएसएल (टीएलएस) एन्क्रिप्शन को संभाल सकता है, नोड.जेएस को बोझ से राहत दे सकता है और सुरक्षा में सुधार कर सकता है।

Node.js के साथ NGINX की स्थापना

Node.js के लिए NGINX को कॉन्फ़िगर करने के लिए, इन चरणों का पालन करें:

चरण 1: एनजीआईएनएक्स स्थापित करें

सबसे पहले, आपको अपने सर्वर पर एनजीआईएनएक्स इंस्टॉल करना होगा। अपने ऑपरेटिंग सिस्टम के आधार पर निम्नलिखित कमांड का उपयोग करें:

उबंटू/डेबियन के लिए:

sudo apt update
sudo apt install nginx

CentOS/RHEL के लिए:

sudo yum install nginx

इंस्टॉलेशन के बाद, आप निम्नलिखित कमांड के साथ एनजीआईएनएक्स शुरू कर सकते हैं:

sudo systemctl start nginx

आप ब्राउज़र में अपने सर्वर के आईपी पते पर जाकर सत्यापित कर सकते हैं कि एनजीआईएनएक्स चल रहा है। यदि एनजीआईएनएक्स काम कर रहा है, तो आपको एक डिफ़ॉल्ट एनजीआईएनएक्स स्वागत पृष्ठ दिखाई देगा।

चरण 2: NGINX को Node.js के लिए रिवर्स प्रॉक्सी के रूप में कॉन्फ़िगर करें

एनजीआईएनएक्स को रिवर्स प्रॉक्सी के रूप में सक्षम करने के लिए, इसे क्लाइंट अनुरोधों को नोड.जेएस एप्लिकेशन पर अग्रेषित करने की अनुमति देने के लिए, हमें तदनुसार एनजीआईएनएक्स को कॉन्फ़िगर करने की आवश्यकता है।

यहां लोकलहोस्ट:3000 पर चल रहे Node.js एप्लिकेशन के लिए NGINX कॉन्फ़िगरेशन का एक उदाहरण दिया गया है।

  1. एनजीआईएनएक्स कॉन्फ़िगरेशन निर्देशिका पर नेविगेट करें:
   cd /etc/nginx/sites-available/
  1. अपने Node.js एप्लिकेशन के लिए एक नई NGINX कॉन्फ़िगरेशन फ़ाइल बनाएं:
   sudo nano nodeapp.conf
  1. निम्न कॉन्फ़िगरेशन जोड़ें:
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;
    }
}
  1. साइट-सक्षम निर्देशिका के लिए एक सिम्लिंक बनाकर कॉन्फ़िगरेशन सक्षम करें:
   sudo ln -s /etc/nginx/sites-available/nodeapp.conf /etc/nginx/sites-enabled/
  1. सिंटैक्स त्रुटियों के लिए एनजीआईएनएक्स कॉन्फ़िगरेशन का परीक्षण करें:
   sudo nginx -t
  1. यदि सब कुछ ठीक है, तो NGINX को पुनरारंभ करें:
   sudo systemctl restart nginx

यह सेटअप पोर्ट 80 पर आने वाले सभी ट्रैफ़िक को पोर्ट 3000 पर चल रहे आपके Node.js एप्लिकेशन पर रूट कर देगा।

Node.js के लिए लोड बैलेंसर के रूप में NGINX

जब आपका Node.js एप्लिकेशन बढ़ता है, तो ट्रैफ़िक को संभालने के लिए एक भी उदाहरण पर्याप्त नहीं हो सकता है। एनजीआईएनएक्स को एक लोड बैलेंसर के रूप में कॉन्फ़िगर किया जा सकता है, जो कई नोड.जेएस उदाहरणों में ट्रैफ़िक वितरित करता है।

यहां बताया गया है कि आप लोड संतुलन के लिए एनजीआईएनएक्स को कैसे कॉन्फ़िगर कर सकते हैं:

  1. अपनी NGINX कॉन्फ़िगरेशन फ़ाइल बनाएं या संपादित करें (nodeapp.conf):
   sudo nano /etc/nginx/sites-available/nodeapp.conf
  1. लोड संतुलन सक्षम करने के लिए निम्नलिखित कॉन्फ़िगरेशन जोड़ें:
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;
    }
}
  1. फ़ाइल सहेजें, कॉन्फ़िगरेशन का परीक्षण करें, और NGINX को पुनरारंभ करें:
sudo nginx -t
sudo systemctl restart nginx

स्पष्टीकरण:

  • अपस्ट्रीम ब्लॉक कई नोड.जेएस सर्वर (लोकलहोस्ट:3000, लोकलहोस्ट:3001, और लोकलहोस्ट:3002) को परिभाषित करता है, और एनजीआईएनएक्स इन सर्वरों पर आने वाले ट्रैफिक को संतुलित करेगा।
  • एनजीआईएनएक्स डिफ़ॉल्ट रूप से एक राउंड-रॉबिन एल्गोरिदम का उपयोग करता है, जो बदले में प्रत्येक सर्वर को अनुरोध भेजता है।

यह सेटअप कई Node.js उदाहरणों में लोड को समान रूप से वितरित करता है, स्केलेबिलिटी और दोष सहनशीलता में सुधार करता है।

एनजीआईएनएक्स के साथ स्थिर सामग्री परोसना

छवियां, सीएसएस और जावास्क्रिप्ट जैसी स्थिर फ़ाइलें परोसना आपके Node.js एप्लिकेशन पर बोझ डाल सकता है। एनजीआईएनएक्स सीधे स्थैतिक परिसंपत्तियों की सेवा करके प्रदर्शन में सुधार करके इस जिम्मेदारी से छुटकारा पा सकता है।

  1. अपनी स्थिर फ़ाइलों के लिए एक निर्देशिका बनाएं (उदाहरण के लिए, /var/www/html/static/):
   sudo mkdir -p /var/www/html/static
  1. अपनी स्थिर फ़ाइलें (सीएसएस, छवियां, जेएस) को इस निर्देशिका में ले जाएं।

  2. स्थैतिक फ़ाइलों की सेवा के लिए अपना एनजीआईएनएक्स कॉन्फ़िगरेशन (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;
    }
}
  1. कॉन्फ़िगरेशन का परीक्षण करें और NGINX को पुनरारंभ करें:
sudo nginx -t
sudo systemctl restart nginx

स्पष्टीकरण:

  • स्थैतिक फ़ाइलों (उदाहरण के लिए, your_domain_or_IP/static/style.css) के लिए अनुरोध सीधे NGINX द्वारा /var/www/html/static/ निर्देशिका से दिए जाएंगे, जिससे आपके Node.js सर्वर पर लोड कम हो जाएगा।

एनजीआईएनएक्स के साथ एसएसएल समाप्ति

क्लाइंट और सर्वर के बीच सुरक्षित संचार महत्वपूर्ण है, और एसएसएल (सिक्योर सॉकेट लेयर) वह एन्क्रिप्शन प्रदान करता है। एनजीआईएनएक्स एसएसएल समाप्ति को संभाल सकता है, जिसका अर्थ है कि यह HTTPS अनुरोधों को Node.js एप्लिकेशन में भेजने से पहले उनके एन्क्रिप्शन और डिक्रिप्शन को संभालता है।

यहां बताया गया है कि आप एसएसएल को एनजीआईएनएक्स के साथ कैसे कॉन्फ़िगर कर सकते हैं:

  1. एक एसएसएल प्रमाणपत्र प्राप्त करें। आप लेट्स एनक्रिप्ट से निःशुल्क एसएसएल प्रमाणपत्र प्राप्त कर सकते हैं या किसी अन्य प्रमाणपत्र प्राधिकरण का उपयोग कर सकते हैं।

  2. एसएसएल सक्षम करने के लिए अपने एनजीआईएनएक्स कॉन्फ़िगरेशन को संशोधित करें:

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;
}
  1. एनजीआईएनएक्स का परीक्षण करें और पुनः आरंभ करें:
sudo nginx -t
sudo systemctl restart nginx

स्पष्टीकरण:

  • सुनें 443 एसएसएल निर्देश यह सुनिश्चित करता है कि एनजीआईएनएक्स एचटीटीपीएस ट्रैफिक को सुनता है।
  • ssl_certificate और ssl_certificate_key आपके SSL प्रमाणपत्र और निजी कुंजी के लिए पथ निर्दिष्ट करते हैं।
  • HTTP से HTTPS पर रीडायरेक्ट यह सुनिश्चित करता है कि सभी ट्रैफ़िक SSL का उपयोग करते हैं।

निष्कर्ष

एनजीआईएनएक्स आपके नोड.जेएस अनुप्रयोगों के प्रदर्शन, स्केलेबिलिटी और सुरक्षा में सुधार के लिए एक शक्तिशाली उपकरण है। लोड संतुलन से लेकर स्थिर फ़ाइलों की सेवा और एसएसएल समाप्ति को संभालने तक, एनजीआईएनएक्स नोड.जेएस से कई कार्यों को ऑफलोड करता है, जिससे आपके एप्लिकेशन को उस पर ध्यान केंद्रित करने की अनुमति मिलती है जो वह सबसे अच्छा करता है: व्यावसायिक तर्क को संभालना। इस आलेख में दिए गए कॉन्फ़िगरेशन के साथ, आप अपने Node.js एप्लिकेशन की दक्षता और विश्वसनीयता बढ़ाने के लिए NGINX सेट कर सकते हैं।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/imsushant12/nginx-for-nodejs-applications-what-why-and-how-to-use-it-1gbn?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग से संपर्क करें @163.com हटाएं
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3