VPS पर C++ एप्लिकेशन का डिप्लॉयमेंट: चरण-दर-चरण मार्गदर्शिका
C++ में डेवलपमेंट अक्सर डिप्लॉयमेंट चरण पर समाप्त होता है — तैयार एप्लिकेशन को रिमोट सर्वर (VPS) पर स्थानांतरित करना। इंटरप्रेटेड भाषाओं के विपरीत, C++ को लक्ष्य आर्किटेक्चर के लिए कंपाइलेशन, वातावरण की सही कॉन्फ़िगरेशन और ऑटोस्टार्ट के आयोजन की आवश्यकता होती है। इस लेख में, हम पूरे चक्र को समझेंगे: VPS तैयार करने से लेकर systemd और Nginx का उपयोग करके C++ एप्लिकेशन के प्रोडक्शन वर्शन को चलाने तक।
1. VPS तैयार करना और आवश्यक टूल्स इंस्टॉल करना
डिप्लॉयमेंट से पहले, सुनिश्चित करें कि आपका VPS Ubuntu 20.04/22.04 या Debian 11/12 पर चल रहा है। SSH के माध्यम से कनेक्ट करें:
ssh root@आपका-सर्वर-आईपीपैकेज बेस को अपडेट करें और कंपाइलर g++, बिल्ड सिस्टम CMake और प्रोसेस मैनेजर screen (डिबगिंग के लिए) इंस्टॉल करें:
apt update && apt upgrade -yapt install build-essential cmake screen git -yकंपाइलर का वर्शन जांचें:
g++ --versionयदि आप लाइब्रेरी (जैसे Boost, OpenSSL) का उपयोग कर रहे हैं, तो उन्हें पहले से इंस्टॉल करें:
apt install libboost-all-dev libssl-dev -y2. सर्वर वातावरण के लिए C++ एप्लिकेशन कंपाइल करना
सोर्स कोड को VPS पर स्थानांतरित करें। Git के माध्यम से ऐसा करना सबसे आसान है:
git clone https://github.com/आपका-रिपॉजिटरी/project.gitcd projectबिल्ड फ़ोल्डर बनाएं और प्रोडक्शन के लिए ऑप्टिमाइज़ेशन के साथ कंपाइलेशन करें:
mkdir build && cd buildcmake .. -DCMAKE_BUILD_TYPE=Releasemake -j$(nproc)फ़्लैग -j$(nproc) सभी CPU कोर का उपयोग करके बिल्ड को गति देता है। सफल कंपाइलेशन के बाद, एक एक्ज़ीक्यूटेबल फ़ाइल (जैसे, app) दिखाई देगी। इसकी कार्यक्षमता जांचें:
./appयदि एप्लिकेशन कॉन्फ़िगरेशन फ़ाइलों या संसाधनों का उपयोग करता है, तो उन्हें बाइनरी के साथ फ़ोल्डर में कॉपी करें या कोड में argv के माध्यम से पथ सेट करें।
3. systemd के माध्यम से ऑटोस्टार्ट सेट करना
यह सुनिश्चित करने के लिए कि एप्लिकेशन सिस्टम स्टार्टअप पर चले और क्रैश होने पर स्वचालित रूप से पुनरारंभ हो, एक systemd सर्विस बनाएं।
फ़ाइल बनाएं /etc/systemd/system/myapp.service:
nano /etc/systemd/system/myapp.serviceनिम्नलिखित सामग्री डालें (अपने पथ से बदलें):
[Unit]Description=My C++ ApplicationAfter=network.target
[Service]ExecStart=/root/project/build/appWorkingDirectory=/root/project/buildRestart=alwaysRestartSec=5User=rootGroup=rootEnvironment="APP_ENV=production"
[Install]WantedBy=multi-user.targetपैरामीटर का स्पष्टीकरण:
Restart=always— किसी भी समाप्ति पर पुनरारंभ (systemctl stop के माध्यम से रोकने को छोड़कर)।RestartSec=5— पुनरारंभ से पहले 5 सेकंड का विराम।Environment— एनवायरनमेंट वेरिएबल पास करना (उदाहरण के लिए, कॉन्फ़िगरेशन के लिए)।
सर्विस को सक्रिय और प्रारंभ करें:
systemctl daemon-reloadsystemctl enable myappsystemctl start myappस्थिति जांचें:
systemctl status myappआपको active (running) देखना चाहिए। यदि एप्लिकेशन क्रैश होता है, तो systemd इसे 5 सेकंड में स्वचालित रूप से पुनरारंभ कर देगा।
4. रिवर्स प्रॉक्सी के रूप में Nginx सेट करना (वैकल्पिक)
यदि आपका C++ एप्लिकेशन HTTP (जैसे, पोर्ट 8080 पर REST API) सुनता है, तो SSL टर्मिनेशन, लोड बैलेंसिंग और स्टैटिक फ़ाइलों के लिए इसके सामने Nginx रखना उपयोगी है।
Nginx इंस्टॉल करें:
apt install nginx -yअपने डोमेन (या IP) के लिए /etc/nginx/sites-available/myapp में कॉन्फ़िगरेशन बनाएं:
server { listen 80; server_name your-domain.com;
location / { proxy_pass http://127.0.0.1:8080; proxy_set_header H
```