VPS पर C++ एप्लिकेशन का डिप्लॉयमेंट: उन्नत स्तर (चरण-दर-चरण मार्गदर्शिका)

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

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

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

परिचय: स्थानीय बिल्ड से C++ एप्लिकेशन के production-रिलीज़ तक

\n

C++ एप्लिकेशन विकसित करना केवल आधा काम है। दूसरा, उतना ही महत्वपूर्ण हिस्सा, इसका एक रिमोट सर्वर (VPS) पर विश्वसनीय और सुरक्षित डिप्लॉयमेंट है। इस लेख में, हम C++ एप्लिकेशन को तैनात करने के उन्नत दृष्टिकोण पर चर्चा करेंगे, जो केवल बाइनरी को कॉपी करने से परे है। आप सीखेंगे कि कैसे स्वचालित बिल्ड सेट अप करें, एप्लिकेशन को सिस्टम सर्विस के रूप में चलाएं, Nginx के माध्यम से reverse proxy व्यवस्थित करें और बुनियादी मॉनिटरिंग लागू करें।

\n

यह लेख उन डेवलपर्स के लिए है जो पहले से C++ और Linux के साथ काम करने की मूल बातों से परिचित हैं। हम आधुनिक टूल का उपयोग करेंगे: CMake, systemd, Nginx और Git।

\n\n

1. बिल्ड ऑटोमेशन और VPS पर वातावरण तैयार करना

\n

1.1. डिपेंडेंसी और कंपाइलर इंस्टॉल करना

\n

डिप्लॉयमेंट से पहले सुनिश्चित करें कि सर्वर पर एक नवीनतम कंपाइलर (g++ या clang) और आवश्यक लाइब्रेरीज़ इंस्टॉल हैं। प्रोडक्शन सर्वर के लिए, स्टैटिक लिंकिंग या कंटेनरीकरण का उपयोग करने की सिफारिश की जाती है, लेकिन इस लेख के दायरे में, हम क्लासिकल दृष्टिकोण पर विचार करेंगे।

\n
# पैकेज अपडेट करें\nsudo apt update && sudo apt upgrade -y\n\n# कंपाइलर और बिल्ड टूल इंस्टॉल करें\nsudo apt install build-essential cmake git -y\n\n# अतिरिक्त लाइब्रेरीज़ इंस्टॉल करें (Boost के लिए उदाहरण)\nsudo apt install libboost-all-dev -y
\n\n

1.2. CMake के साथ बिल्ड स्क्रिप्ट बनाना

\n

बिल्ड प्रबंधन के लिए CMake का उपयोग करें। यह पोर्टेबिलिटी सुनिश्चित करेगा और CI/CD के साथ एकीकरण को सरल बनाएगा। CMakeLists.txt का उदाहरण:

\n
cmake_minimum_required(VERSION 3.16)\nproject(MyCppApp VERSION 1.0.0 LANGUAGES CXX)\n\nset(CMAKE_CXX_STANDARD 17)\nset(CMAKE_CXX_STANDARD_REQUIRED ON)\n\n# प्रोडक्शन बिल्ड के लिए ऑप्टिमाइज़ेशन\nset(CMAKE_BUILD_TYPE Release)\n\n# बाहरी लाइब्रेरीज़ खोजें\nfind_package(Boost REQUIRED COMPONENTS system filesystem)\n\n# एक्जीक्यूटेबल फ़ाइल बनाएं\nadd_executable(${PROJECT_NAME} src/main.cpp src/server.cpp)\ntarget_link_libraries(${PROJECT_NAME} PRIVATE Boost::system Boost::filesystem pthread)\n\n# बाइनरी को सिस्टम में इंस्टॉल करें\ninstall(TARGETS ${PROJECT_NAME} DESTINATION /usr/local/bin)
\n

CMakeLists.txt बनाने के बाद, सर्वर पर बिल्ड निष्पादित करें:

\n
cd /opt/myapp\nmkdir build && cd build\ncmake .. -DCMAKE_BUILD_TYPE=Release\nmake -j$(nproc)\nsudo make install
\n\n

2. प्रक्रिया प्रबंधन के लिए systemd कॉन्फ़िगर करना

\n

एप्लिकेशन को बैकग्राउंड में चलाना और क्रैश होने पर इसका स्वचालित पुनरारंभ एक महत्वपूर्ण कार्य है। एक स्थिर सेवा बनाने के लिए systemd का उपयोग करें।

\n\n

2.1. यूनिट-फ़ाइल बनाना

\n

फ़ाइल बनाएं /etc/systemd/system/myapp.service:

\n
[Unit]\nDescription=My C++ Production Application\nAfter=network.target\n\n[Service]\nType=simple\nUser=www-data\nGroup=www-data\nWorkingDirectory=/opt/myapp\nExecStart=/usr/local/bin/MyCppApp --config /etc/myapp/config.json\nRestart=always\nRestartSec=5\nStandardOutput=journal\nStandardError=journal\n\n# सुरक्षा\nNoNewPrivileges=true\nProtectSystem=full\nProtectHome=true\n\n[Install]\nWantedBy=multi-user.target
\n\n

2.2. सेवा शुरू करना और जांचना

\n
sudo systemctl daemon-reload\nsudo systemctl enable myapp.service\nsudo systemctl start myapp.service\nsudo systemctl status myapp.service
\n

अब आपका C++ एप्लिकेशन सिस्टम स्टार्ट होने पर स्वचालित रूप से शुरू होगा और विफलता की स्थिति में पुनरारंभ होगा।

\n\n

3. Nginx के माध्यम से Reverse proxy और HTTPS सेटअप

\n

एप्लिकेशन पोर्ट तक सीधी पहुंच असुरक्षित और असुविधाजनक है। स्टैटिक फ़ाइलों को संभालने, SSL-टर्मिनेशन और लोड बैलेंसिंग के लिए Nginx को reverse proxy के रूप में उपयोग करें।

\n\n

3.1. Nginx इंस्टॉल और कॉन्फ़िगर करना

\n
sudo apt install nginx certbot python3-certbot-nginx -y
\n

कॉन्फ़िगरेशन बनाएं /etc/nginx/sites-available/myapp:

\n
server {\n    listen 80;\n    server_name myapp.example.com;\n\n    location / {\n        pr                

ब्लॉग

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