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

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

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

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

परिचय: VPS पर Go एप्लिकेशन को डिप्लॉय करना सरल और प्रभावी क्यों है

Go (Golang) अपने प्रदर्शन और सरलता के लिए प्रसिद्ध है। भाषा का एक मुख्य लाभ एक एकल स्थिर बाइनरी (static binary) में संकलन (compile) है, जिसे सर्वर पर अतिरिक्त रनटाइम (runtime) स्थापित करने की आवश्यकता नहीं होती है। यह VPS पर Go एप्लिकेशन के डिप्लॉयमेंट (deployment) को अविश्वसनीय रूप से तेज़ और विश्वसनीय बनाता है। इस लेख में, हम सर्वर तैयार करने से लेकर reverse proxy और HTTPS कॉन्फ़िगर करने तक, पूर्ण डिप्लॉयमेंट चक्र (deployment cycle) का विश्लेषण करेंगे। आपको एक तैयार चेक-लिस्ट (checklist) मिलेगी जिसका उपयोग किसी भी Go प्रोजेक्ट के लिए किया जा सकता है।



1. VPS तैयार करना और आवश्यक सॉफ़्टवेयर स्थापित करना

कोड अपलोड करने से पहले, सर्वर तैयार करना होगा। मान लिया जाता है कि आपके पास Ubuntu 22.04 या 24.04 वाला VPS है। SSH के माध्यम से कनेक्ट करें और सिस्टम अपडेट करें।

sudo apt update && sudo apt upgrade -y

सर्वर पर Go स्थापित करना

हालाँकि Go एक बाइनरी (binary) में संकलित होता है, फिर भी बिल्ड (build) के लिए सर्वर पर कंपाइलर (compiler) की आवश्यकता हो सकती है। नवीनतम संस्करण स्थापित करें:

wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gzsudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gzexport PATH=$PATH:/usr/local/go/binecho 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile

स्थापना जांचें: go version.



Git और Nginx स्थापित करना

रिपॉजिटरी (repository) को क्लोन (clone) करने के लिए Git की आवश्यकता होगी, और reverse proxy और स्टैटिक (static) फ़ाइलों के लिए Nginx की।

sudo apt install git nginx -y


2. Go एप्लिकेशन को बिल्ड और रन करना

एक सरल HTTP-सर्वर के उदाहरण के साथ प्रक्रिया पर विचार करें। एक फ़ाइल main.go बनाएं:

package main

import (\t"fmt"\t"net/http")

func handler(w http.ResponseWriter, r *http.Request) {\tfmt.Fprintf(w, "Hello from Go on VPS!")}

func main() {\thttp.HandleFunc("/", handler)\tfmt.Println("Server started on :8080")\thttp.ListenAndServe(":8080", nil)}

Linux के लिए बाइनरी (binary) बनाएं (भले ही आप Windows/Mac पर काम कर रहे हों):

GOOS=linux GOARCH=amd64 go build -o myapp main.go

अब बाइनरी (binary) को सर्वर पर अपलोड करें। SCP या Rsync का उपयोग करें:

scp myapp user@your-server-ip:~/

सर्वर पर फ़ाइल को निष्पादन योग्य (executable) बनाएं और चलाएं:

chmod +x ~/myapp./myapp &

कार्य जांचें: curl http://localhost:8080. यदि आप "Hello from Go on VPS!" देखते हैं — तो सब कुछ काम कर रहा है।



3. ऑटोस्टार्ट (autostart) के लिए systemd कॉन्फ़िगर करना

मैन्युअल (manual) स्टार्ट करना सबसे अच्छा अभ्यास नहीं है। systemd का उपयोग करें ताकि एप्लिकेशन सिस्टम स्टार्ट होने पर चले और क्रैश (crash) होने पर पुनः प्रारंभ हो।

एक सर्विस फ़ाइल बनाएं:

sudo nano /etc/systemd/system/myapp.service

कॉन्फ़िगरेशन (configuration) डालें:

[Unit]Description=Go Application ServiceAfter=network.target

[Service]Type=simpleUser=www-dataWorkingDirectory=/home/userExecStart=/home/user/myappRestart=alwaysRestartSec=5

[Install]WantedBy=multi-user.target

/home/user को अपने पथ से बदलें। सर्विस को सक्रिय करें और चलाएं:

sudo systemctl daemon-reloadsudo systemctl enable myappsudo systemctl start myappsudo systemctl status myapp

अब आपका Go एप्लिकेशन एक डेमॉन (daemon) की तरह काम करेगा।



4. Nginx को reverse proxy और HTTPS के रूप में कॉन्फ़िगर करना

एप्लिकेशन को डोमेन (domain) और पोर्ट 443 के माध्यम से सुलभ बनाने के लिए, Nginx कॉन्फ़िगर करें।

Reverse proxy कॉन्फ़िगरेशन

डिफ़ॉल्ट (default) कॉन्फ़िग (config) हटाएं और अपना खुद का बनाएं:

sudo rm /etc/nginx/sites-enabled/defaultsudo nano /etc/nginx/sites-available/myapp

जोड़ें:

server {    listen 80;    server_name yourdomain.com www.yourdomain.com;

location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_h

ब्लॉग

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