VPS पर JavaScript एप्लिकेशन का डिप्लॉयमेंट: उन्नत चरण-दर-चरण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: लोकल सर्वर से प्रोडक्शन-रेडी समाधान तक

\n

आपने Node.js पर एक शक्तिशाली JavaScript एप्लिकेशन बनाया है, इसे लोकल रूप से परीक्षण किया है, और अब इसे दुनिया को दिखाने का समय आ गया है। केवल VPS पर फ़ाइलें अपलोड करना और node app.js चलाना — यह शुरुआती का तरीका है। उन्नत स्तर पर, डिप्लॉयमेंट में रिवर्स प्रॉक्सी सर्वर, प्रोसेस मैनेजर, SSL प्रमाणपत्रों का स्वचालित नवीनीकरण, सतत एकीकरण और वितरण (CI/CD) प्रणाली, साथ ही उचित मॉनिटरिंग और लॉगिंग शामिल है।

\n

इस लेख में, हम VPS (Ubuntu 22.04) पर Node.js एप्लिकेशन के डिप्लॉयमेंट की उन्नत स्तर की चरण-दर-चरण प्रक्रिया पर चर्चा करेंगे। हम Nginx को reverse proxy के रूप में, PM2 को प्रक्रिया प्रबंधन के लिए, Let's Encrypt को HTTPS के लिए, GitHub Actions को रिपॉजिटरी में पुश करने पर स्वचालित डिप्लॉय के लिए कॉन्फ़िगर करेंगे, और बुनियादी मॉनिटरिंग जोड़ेंगे।

\n\n

पूर्वापेक्षाएँ

\n
    \n
  • SSH एक्सेस वाला VPS सर्वर (Ubuntu 22.04)।
  • \n
  • आपके सर्वर के IP से जुड़ा एक डोमेन (उदाहरण के लिए, myapp.example.com)।
  • \n
  • सर्वर पर स्थापित Node.js (v18+) और npm।
  • \n
  • सर्वर पर स्थापित Git।
  • \n
  • GitHub पर आपके एप्लिकेशन का रिपॉजिटरी।
  • \n
\n\n

1. सर्वर और प्रोसेस मैनेजर PM2 की सेटिंग

\n

हम पर्यावरण की बुनियादी तैयारी से शुरू करते हैं। SSH के माध्यम से सर्वर से कनेक्ट करने के बाद, पैकेज अपडेट करें और आवश्यक उपयोगिताएँ स्थापित करें:

\n
sudo apt update && sudo apt upgrade -y\nsudo apt install nginx git curl -y
\n

सुनिश्चित करें कि Node.js स्थापित है। यदि नहीं है, तो NodeSource के माध्यम से स्थापित करें:

\n
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -\nsudo apt install -y nodejs\nnode -v\nnpm -v
\n

अब वैश्विक रूप से PM2 स्थापित करें — Node.js के लिए एक उन्नत प्रक्रिया प्रबंधक, जो क्रैश होने पर एप्लिकेशन को स्वचालित रूप से पुनरारंभ करता है, लॉग प्रबंधित करता है और क्लस्टरिंग करता है:

\n
sudo npm install -g pm2
\n

अपने एप्लिकेशन के रिपॉजिटरी को क्लोन करें और निर्भरताएँ स्थापित करें:

\n
git clone https://github.com/आपका-उपयोगकर्ता-नाम/आपका-रिपॉजिटरी.git /var/www/myapp\ncd /var/www/myapp\nnpm install --production
\n

बारीक ट्यूनिंग के लिए PM2 इकोसिस्टम फ़ाइल (ecosystem.config.js) बनाएँ:

\n
// ecosystem.config.js\nmodule.exports = {\n  apps: [{\n    name: 'myapp',\n    script: 'app.js', // या server.js\n    instances: 'max', // सभी CPU कोर का उपयोग करें\n    exec_mode: 'cluster',\n    env: {\n      NODE_ENV: 'production',\n      PORT: 3000\n    },\n    error_file: '/var/log/node-app/err.log',\n    out_file: '/var/log/node-app/out.log',\n    log_date_format: 'YYYY-MM-DD HH:mm Z'\n  }]\n};
\n

लॉग के लिए एक निर्देशिका बनाएँ और PM2 के माध्यम से एप्लिकेशन चलाएँ:

\n
sudo mkdir -p /var/log/node-app\nsudo chown -R $USER:$USER /var/log/node-app\npm2 start ecosystem.config.js\npm2 save\npm2 startup systemd
\n

pm2 startup कमांड एक systemd सेवा बनाएगा जो सिस्टम स्टार्टअप पर PM2 को शुरू करेगा। अब आपका एप्लिकेशन पोर्ट 3000 पर चल रहा है, लेकिन इस तक सीधी पहुँच असुरक्षित है। अब Nginx सेटिंग की ओर बढ़ते हैं।

\n\n

2. Nginx को reverse proxy और Let's Encrypt के माध्यम से SSL के रूप में सेट करना

\n

Nginx पोर्ट 80 (HTTP) और 443 (HTTPS) पर आने वाले अनुरोधों को प्राप्त करेगा, उन्हें आपके पोर्ट 3000 पर चल रहे Node.js प्रक्रिया पर प्रॉक्सी करेगा, और स्थिर फ़ाइलों को सीधे सर्व करेगा — इससे Node.js पर लोड कम होता है।

\n

अपने डोमेन के लिए एक कॉन्फ़िगरेशन फ़ाइल बनाएँ:

\n
sudo nano /etc/nginx/sites-available/myapp
\n

निम्नलिखित कॉन्फ़िगरेशन डालें (myapp.example.com को अपने डोमेन से बदलें):

\n
server {\n    listen 80;\n    server_name myapp.example.com;\n    return 301 https://$server_name$request_uri; # HTTPS पर रीडायरेक्ट\n}\n\nserver {\n    listen 443 ssl http2;\n    server_name myapp.example.com;\n\n    # SSL सर्व                

ब्लॉग

पुस्तक अनुशंसाएँ