परिचय: VPS पर Go एप्लिकेशन का डिप्लॉयमेंट क्यों सरल और विश्वसनीय है
Go (Golang) सर्वर-साइड एप्लिकेशन बनाने के लिए सबसे कुशल भाषाओं में से एक है। इसका मुख्य लाभ एक स्थिर बाइनरी में कंपाइल होना है, जिसके लिए सर्वर पर इंटरप्रेटर या वर्चुअल मशीन स्थापित करने की आवश्यकता नहीं होती है। यह Python, Node.js या Java की तुलना में VPS (Virtual Private Server) पर Go एप्लिकेशन के डिप्लॉयमेंट को अविश्वसनीय रूप से सरल और तेज़ बनाता है।
इस लेख में, हम चरण दर चरण VPS पर Go-एप्लिकेशन तैनात करेंगे: प्रारंभिक सर्वर सेटअप से लेकर systemd के माध्यम से रन करने और HTTPS के साथ Nginx के माध्यम से प्रकाशित करने तक। आप सीखेंगे कि जोखिमों को कैसे कम करें और अपनी सेवा का 24/7 स्थिर संचालन कैसे सुनिश्चित करें।
1. VPS तैयार करना और आवश्यक सॉफ़्टवेयर स्थापित करना
डिप्लॉय शुरू करने से पहले, सुनिश्चित करें कि आपके पास SSH के माध्यम से VPS (जैसे, Ubuntu 22.04 LTS) तक पहुंच है। हम बुनियादी टूल सेट का उपयोग करेंगे।
1.1. प्रारंभिक सर्वर सेटअप
सर्वर से कनेक्ट करें और पैकेज अपडेट करें:
ssh root@आपका-सर्वर-आईपीapt update && apt upgrade -yएप्लिकेशन के लिए एक अलग उपयोगकर्ता बनाएं (root के रूप में काम न करें):
adduser deployerusermod -aG sudo deployersu - deployer1.2. Go स्थापित करना (यदि सर्वर पर कंपाइल करना आवश्यक हो)
हालांकि अक्सर बाइनरी को स्थानीय रूप से बनाया जाता है, कभी-कभी सीधे VPS पर कंपाइल करना सुविधाजनक होता है। Go का नवीनतम संस्करण स्थापित करें:
wget https://go.dev/dl/go1.22.2.linux-amd64.tar.gzsudo tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gzecho 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrcsource ~/.bashrcgo version1.3. Git और Nginx स्थापित करना
रिपॉजिटरी को क्लोन करने के लिए Git की आवश्यकता होगी, और रिवर्स प्रॉक्सी और SSL के लिए Nginx की:
sudo apt install git nginx -y2. Go एप्लिकेशन बनाना और डिप्लॉय के लिए तैयार करना
2.1. एक सरल Go-एप्लिकेशन का उदाहरण
Go में एक न्यूनतम HTTP सर्वर बनाएं। आप अपने प्रोजेक्ट का उपयोग कर सकते हैं, लेकिन प्रदर्शन के लिए यह कोड (main.go) उपयुक्त है:
package main
import ( "fmt" "net/http" "os")
func main() { port := os.Getenv("PORT") if port == "" { port = "8080" }
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello from Go! Server time: %s", time.Now().Format(time.RFC1123)) })
fmt.Printf("Server starting on port %s", port) http.ListenAndServe(":"+port, nil)}2.2. Linux के लिए बाइनरी कंपाइल करना
अपनी स्थानीय मशीन (या सर्वर पर) पर, VPS की लक्ष्य आर्किटेक्चर (आमतौर पर amd64) के लिए बाइनरी बनाएं:
GOOS=linux GOARCH=amd64 go build -o myapp main.goजांचें कि बाइनरी स्थिर है और इसे लाइब्रेरी की आवश्यकता नहीं है:
ldd myapp # इसे "not a dynamic executable" आउटपुट करना चाहिए2.3. सर्वर पर अपलोड करना
SCP के माध्यम से बाइनरी को VPS पर कॉपी करें:
scp myapp deployer@आपका-सर्वर-आईपी:/home/deployer/सर्वर पर, इसे उपयुक्त निर्देशिका में ले जाएं और निष्पादन अनुमति दें:
sudo mkdir -p /opt/myappsudo mv /home/deployer/myapp /opt/myapp/sudo chmod +x /opt/myapp/myapp3. ऑटोस्टार्ट और मॉनिटरिंग के लिए systemd सेटअप करना
systemd Linux में सेवाओं का मानक प्रबंधक है। यह आपके एप्लिकेशन को सिस्टम स्टार्टअप पर शुरू करने और विफलता पर स्वचालित रूप से पुनरारंभ करने की अनुमति देगा।
3.1. यूनिट फ़ाइल बनाना
फ़ाइल /etc/systemd/system/myapp.service बनाएं:
sudo nano /etc/systemd/system/myapp.serviceनिम्नलिखित कॉन्फ़िगरेशन डालें:
[Unit]Description=My Go ApplicationAfter=network.target
[Service]Type=simpleUser=deployerGroup=deployerWorkingDirectory=/opt/myappExecStart=/opt/myapp/myappRestart=alwaysRestartSec=5Environment=PORT=80