VPS पर C++ एप्लिकेशन डिप्लॉय करें: चरण-दर-चरण पूरी गाइड

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

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

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

परिचय: VPS पर C++ एप्लिकेशन क्यों डिप्लॉय करें?

C++ आज भी सबसे तेज़ प्रोग्रामिंग भाषाओं में से एक है। अगर आपने C++ में कोई हाई-लोड सर्वर, पार्सर, गेम इंजन या माइक्रोसर्विस बनाया है, तो इसे इंटरनेट पर पब्लिश करने का सवाल आएगा। VPS (Virtual Private Server) किराए पर लेना इसके लिए सबसे अच्छा विकल्प है: आपको एनवायरनमेंट पर पूरा कंट्रोल मिलता है, जो कंपाइल की जाने वाली भाषाओं के लिए बहुत ज़रूरी है।

इस आर्टिकल में हम पूरी प्रक्रिया कवर करेंगे: खाली सर्वर सेटअप से लेकर systemd के तहत C++ बाइनरी चलाने और Nginx के ज़रिए पब्लिश करने तक। सभी कोड उदाहरण काम करने वाले हैं और Ubuntu 22.04 पर टेस्ट किए गए हैं।

1. VPS तैयार करना और टूल्स इंस्टॉल करना

1.1. सर्वर से कनेक्ट करना

VPS खरीदने के बाद आपको IP पता, लॉगिन (आमतौर पर root) और पासवर्ड मिलेगा। SSH के ज़रिए कनेक्ट करें:

ssh root@आपका_सर्वर_IP

पैकेज बेस को अपडेट करें और बेसिक यूटिलिटीज़ इंस्टॉल करें:

apt update && apt upgrade -y
apt install git curl wget build-essential -y

1.2. कंपाइलर और CMake इंस्टॉल करना

C++ प्रोजेक्ट को बिल्ड करने के लिए g++ और cmake चाहिए:

apt install g++ cmake -y
g++ --version  # वर्जन चेक करें

अगर आपको GCC का नया वर्जन चाहिए (जैसे C++20 के लिए), तो PPA जोड़ें:

add-apt-repository ppa:ubuntu-toolchain-r/test -y
apt install g++-13 -y
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100

2. टेस्ट C++ एप्लिकेशन लिखना (HTTP-सर्वर)

डेमो के लिए, हम C++ में सॉकेट का उपयोग करके एक सरल HTTP-सर्वर बनाएंगे। यह पोर्ट 8080 पर सुनेगा और "Hello from C++ VPS!" का जवाब देगा।

2.1. प्रोजेक्ट स्ट्रक्चर

mkdir ~/cpp-server && cd ~/cpp-server
nano main.cpp

2.2. सोर्स कोड (main.cpp)

#include <iostream>
#include <string>
#include <sstream>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>

int main() {
    int server_fd, new_socket;
    struct sockaddr_in address;
    int opt = 1;
    int addrlen = sizeof(address);
    char buffer[1024] = {0};

    // सॉकेट बनाएँ
    if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
        perror("socket failed");
        exit(EXIT_FAILURE);
    }

    // पोर्ट बाइंड करें
    if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt))) {
        perror("setsockopt");
        exit(EXIT_FAILURE);
    }
    address.sin_family = AF_INET;
    address.sin_addr.s_addr = INADDR_ANY;
    address.sin_port = htons(8080);

    if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0) {
        perror("bind failed");
        exit(EXIT_FAILURE);
    }

    if (listen(server_fd, 3) < 0) {
        perror("listen");
        exit(EXIT_FAILURE);
    }

    std::cout << "Server listening on port 8080..." << std::endl;

    while (true) {
        if ((new_socket = accept(server_fd, (struct sockaddr *)&address,
                                 (socklen_t*)&addrlen)) < 0) {
            perror("accept");
            continue;
        }

        read(new_socket, buffer, 1024);
        std::string response = "HTTP/1.1 200 OK\\r\\nContent-Type: text/plain\\r\\n\\r\\nHello from C++ VPS!";
        send(new_socket, response.c_str(), response.length(), 0);
        close(new_socket);
    }
    return 0;
}

2.3. प्रोजेक्ट बिल्ड करना

ऑप्टिमाइज़ेशन और स्टैटिक लिंकिंग के साथ कंपाइल करें (अगर ज़रूरत हो):

g++ -O2 -std=c++17 main.cpp -o server
ls -la server  # बाइनरी चेक करें

3. डिप्लॉय: systemd + Nginx reverse proxy

3.1. systemd सर्विस बनाना

ताकि एप्लिकेशन सर्वर स्टार्ट होने पर ऑटोमैटिक चले और क्रैश न हो, systemd यूनिट बनाएँ:

nano /etc/systemd/system/cpp-server.service

ब्लॉग

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