VPS पर Go एप्लिकेशन डिप्लॉय करना: A से Z तक चरण-दर-चरण मार्गदर्शिका

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

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

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

परिचय: Go VPS के लिए क्यों आदर्श है, और हम क्या करेंगे

\n\n

Go (Golang) एक ऐसी भाषा है जो स्केलेबल और उच्च-प्रदर्शन वाले सर्वर एप्लिकेशन के लिए बनाई गई है। एक स्थिर बाइनरी फ़ाइल में कंपाइलेशन इसे VPS (वर्चुअल प्राइवेट सर्वर) पर डिप्लॉय करने के लिए एक आदर्श उम्मीदवार बनाता है। आपको सर्वर पर इंटरप्रेटर या डिपेंडेंसी स्थापित करने की आवश्यकता नहीं है — बस फ़ाइल कॉपी करें और चलाएं।

\n\n

इस लेख में, हम पूरी प्रक्रिया से गुज़रेंगे: Go पर एक सरल HTTP सर्वर लिखने से लेकर इसे VPS पर प्रोडक्शन में चलाने तक, जिसमें ऑटो-स्टार्ट के लिए systemd, रिवर्स प्रॉक्सी के रूप में Nginx और HTTPS के लिए Let's Encrypt का उपयोग शामिल है।

\n\n

आप सीखेंगे:

\n
    \n
  • Linux के लिए Go एप्लिकेशन कंपाइल करना
  • \n
  • SSH के माध्यम से बाइनरी फ़ाइल को VPS पर अपलोड करना
  • \n
  • स्वचालित स्टार्टअप के लिए systemd कॉन्फ़िगर करना
  • \n
  • Nginx इंस्टॉल और कॉन्फ़िगर करना
  • \n
  • मुफ़्त SSL प्रमाणपत्र प्राप्त करना
  • \n
\n\n

चरण 1: Go एप्लिकेशन तैयार करना और कंपाइलेशन

\n\n

एक सरल वेब एप्लिकेशन बनाना

\n\n

उदाहरण के लिए, हम एक न्यूनतम HTTP सर्वर लिखेंगे जो "Hello, VPS!" का जवाब देता है। main.go फ़ाइल बनाएं:

\n\n
package main\n\nimport (\n    "fmt"\n    "net/http"\n)\n\nfunc main() {\n    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {\n        fmt.Fprintf(w, "Hello, VPS!")\n    })\n\n    fmt.Println("Server started on :8080")\n    http.ListenAndServe(":8080", nil)\n}
\n\n

Linux के लिए कंपाइलेशन

\n\n

यदि आप Windows या macOS पर डेवलप कर रहे हैं, तो आपको VPS की लक्ष्य आर्किटेक्चर (आमतौर पर linux/amd64) के लिए बाइनरी कंपाइल करनी होगी। प्रोजेक्ट फ़ोल्डर में टर्मिनल खोलें और निष्पादित करें:

\n\n
set GOOS=linux\nset GOARCH=amd64\ngo build -o myapp
\n\n

Linux/macOS के लिए export का उपयोग करें:

\n\n
export GOOS=linux\nexport GOARCH=amd64\ngo build -o myapp
\n\n

परिणामस्वरूप, myapp नामक एक बाइनरी फ़ाइल दिखाई देगी। इसका आकार जांचें — यह छोटा होगा (लगभग 7-10 MB), क्योंकि Go स्थिर रूप से सब कुछ कंपाइल करता है।

\n\n

चरण 2: VPS पर अपलोड करना और systemd कॉन्फ़िगरेशन

\n\n

सर्वर से कनेक्ट करना और फ़ाइल अपलोड करना

\n\n

SSH के माध्यम से अपने VPS से कनेक्ट करें:

\n\n
ssh root@आपका-सर्वर-आईपी
\n\n

एप्लिकेशन के लिए एक डायरेक्टरी बनाएं:

\n\n
mkdir -p /opt/myapp\ncd /opt/myapp
\n\n

स्थानीय मशीन पर, SCP के माध्यम से बाइनरी अपलोड करें (एक अलग टर्मिनल में निष्पादित करें):

\n\n
scp myapp root@आपका-सर्वर-आईपी:/opt/myapp/
\n\n

सर्वर पर वापस जाएं और निष्पादन अनुमति दें:

\n\n
chmod +x /opt/myapp/myapp
\n\n

systemd सेवा बनाना

\n\n

एप्लिकेशन को सिस्टम स्टार्टअप पर स्वचालित रूप से शुरू करने और विफलता पर पुनरारंभ करने के लिए, हम एक systemd यूनिट बनाएंगे। फ़ाइल बनाएं:

\n\n
nano /etc/systemd/system/myapp.service
\n\n

निम्नलिखित सामग्री डालें:

\n\n
[Unit]\nDescription=My Go Application\nAfter=network.target\n\n[Service]\nType=simple\nUser=www-data\nGroup=www-data\nWorkingDirectory=/opt/myapp\nExecStart=/opt/myapp/myapp\nRestart=on-failure\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target
\n\n

पैरामीटर का स्पष्टीकरण:

\n
    \n
  • User और Group — वह उपयोगकर्ता जिससे एप्लिकेशन चलेगा (root की अनुशंसा नहीं की जाती है)।
  • \n
  • Restart=on-failure — क्रैश होने पर स्वचालित पुनरारंभ।
  • \n
  • RestartSec=5 — पुनरारंभ से पहले विराम।
  • \n
\n\n

अब सेवा को सक्रिय और प्रारंभ करें:

\n\n
systemctl daemon-reload\nsystemctl enable myapp\nsystemctl start myapp\nsystemctl status myapp
\n\n

यदि सब कुछ सही ढंग से किया गया है, तो आप active (running) स्थिति देखेंगे। जांचें कि एप्लिकेशन स्थानीय रूप से जवाब दे रहा है:

\n\n
curl http://localhost:8080
\n\n

चरण 3: रिवर्स प्रॉक्सी के रूप में Nginx कॉन्फ़िगरेशन

\n\n

पोर्ट 8 के माध्यम से एप्लिकेशन तक सीधी पहुंच

ब्लॉग

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