Skip to content

VPS पर Node.js को हमेशा चालू सर्विस की तरह चलाएं ​

यह उदाहरण Ubuntu या Debian पर systemd इस्तेमाल करता है। मान लिया गया है कि आपके पास रिव्यू किया हुआ Node.js ऐप और सपोर्टेड Node.js इंस्टॉलेशन पहले से है। पाथ और एंट्री पॉइंट अपने प्रोजेक्ट के हिसाब से बदलें।

चरण ​

  1. एक अलग सर्विस यूजर और निजी रिलीज डायरेक्टरी बनाएं। रिव्यू किया हुआ प्रोजेक्ट वहीं डिप्लॉय करें, और उसका ओनर वही यूजर रखें। डिपेंडेंसी इंस्टॉल और बिल्ड उसी यूजर से चलाएं, root से नहीं।

    bash
    sudo adduser --system --group --home /srv/apnapp apnapp
    sudo install -d -o apnapp -g apnapp /srv/apnapp/current
  2. लॉक की गई डिपेंडेंसी इंस्टॉल करें, प्रोडक्शन रिलीज बिल्ड करें और ऐप को 127.0.0.1:3000 पर सुनने के लिए सेट करें। environment सेटिंग तभी काम करती हैं जब ऐप उन्हें पढ़ता हो। सीक्रेट सोर्स रिपोजिटरी में नहीं, सीमित अनुमति वाली environment फाइल में रखें।

    bash
    sudo test -e /etc/apnapp.env || sudo install -o root -g apnapp -m 640 /dev/null /etc/apnapp.env
    command -v node
  3. नीचे दिए कॉन्फ़िगरेशन से /etc/systemd/system/apnapp.service बनाएं। Node executable का पाथ, वर्किंग डायरेक्टरी और एंट्री फाइल अपने हिसाब से बदलें। environment फाइल निजी तौर पर भरें। सीक्रेट वाली मौजूदा फाइल ओवरराइट न करें।

    ini
    [Unit]
    Description=APNCloud application
    After=network.target
    
    [Service]
    User=apnapp
    Group=apnapp
    WorkingDirectory=/srv/apnapp/current
    Environment=NODE_ENV=production
    EnvironmentFile=/etc/apnapp.env
    ExecStart=/usr/bin/node /srv/apnapp/current/server.js
    Restart=on-failure
    RestartSec=5
    NoNewPrivileges=true
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
  4. यूनिट वैलिडेट करें, उसे चालू करें और लॉग देखें। कोई भी रूट पब्लिश करने से पहले स्टार्टअप की त्रुटियां ठीक करें।

    bash
    sudo systemd-analyze verify /etc/systemd/system/apnapp.service
    sudo systemctl daemon-reload
    sudo systemctl enable --now apnapp
    sudo journalctl -u apnapp -n 50 --no-pager
    curl -I http://127.0.0.1:3000/
  5. रिलीज के बाद सर्विस रीस्टार्ट करें और हेल्थ जांचें। रीबूट टेस्ट की योजना बनाएं और रोलबैक के लिए पिछली रिलीज रखें। रीस्टार्ट से रिक्वेस्ट कुछ देर के लिए रुक सकती हैं।

समस्या होने पर ​

शेल में ऐप चलता है लेकिन सर्विस के रूप में फेल होता है, तो executable का पाथ, अनुमतियां, वर्किंग डायरेक्टरी और environment की तुलना करें। अनुमति की समस्या टालने के लिए सर्विस को root से न चलाएं। अपलोड और स्थायी डेटा के लिए ऐप के अपने writable डायरेक्टरी इस्तेमाल करें।

संबंधित गाइड ​

अंतिम समीक्षा ​

2026-10-28

APNCloud की आधिकारिक सहायता। मुख्य वेबसाइट: apncloud.com · क्लाइंट एरिया: account.apncloud.com