VPS पर Java एप्लिकेशन का डिप्लॉयमेंट: A से Z तक चरण-दर-चरण मार्गदर्शिका
\n\nJava एप्लिकेशन डेवलप करना काम का केवल आधा हिस्सा है। दूसरा, उतना ही महत्वपूर्ण हिस्सा है इसे सर्वर पर तैनात करना। कई डेवलपर्स को अपनी लोकल मशीन से रिमोट VPS पर कोड स्थानांतरित करने में कठिनाइयों का सामना करना पड़ता है। इस लेख में, हम उबंटू 22.04 ऑपरेटिंग सिस्टम वाले वर्चुअल प्राइवेट सर्वर (VPS) पर Java एप्लिकेशन (Spring Boot के उदाहरण के साथ) को तैनात करने की पूरी प्रक्रिया पर चर्चा करेंगे। आप सीखेंगे कि वातावरण कैसे सेट करें, प्रोजेक्ट कैसे बनाएं, इसे एक सेवा के रूप में कैसे चलाएं और Nginx और SSL के माध्यम से सुरक्षित पहुंच कैसे सुनिश्चित करें।
\n\n1. VPS तैयार करना और आवश्यक सॉफ्टवेयर स्थापित करना
\n\nकोड अपलोड करने से पहले, सर्वर को तैयार करना आवश्यक है। हम उबंटू 22.04 LTS का उपयोग करेंगे। SSH के माध्यम से सर्वर से कनेक्ट करें:
\n\nssh root@आपका-आईपी-पता\n\nपैकेज मैनेजर को अपडेट करें और बुनियादी उपयोगिताएँ स्थापित करें:
\n\napt update && apt upgrade -y\napt install curl git -y\n\nअब OpenJDK 17 स्थापित करें (अधिकांश आधुनिक प्रोजेक्ट्स के लिए अनुशंसित संस्करण):
\n\napt install openjdk-17-jdk -y\n\nइंस्टॉलेशन जांचें:
\n\njava -version\n\nआपको कुछ इस तरह देखना चाहिए:
\n\nopenjdk version "17.0.9" 2023-10-17\n\nइसके बाद, प्रोजेक्ट को बिल्ड करने के लिए Maven स्थापित करें (यदि आप Gradle का उपयोग करते हैं, तो कमांड को तदनुसार बदलें):
\n\napt install maven -y\nmvn -version\n\nइसके साथ बुनियादी वातावरण की तैयारी पूरी होती है।
\n\n2. Java एप्लिकेशन को बिल्ड करना और सर्वर पर अपलोड करना
\n\nअपने Java एप्लिकेशन को लोकल रूप से बिल्ड करें। प्रोजेक्ट की रूट डायरेक्टरी पर जाएं और निष्पादित करें:
\n\nmvn clean package -DskipTests\n\nसफल बिल्ड के बाद, target फ़ोल्डर में एक JAR फ़ाइल दिखाई देगी (उदाहरण के लिए, myapp-0.0.1-SNAPSHOT.jar)। अब इसे सर्वर पर अपलोड करना होगा। scp का उपयोग करें (अपनी लोकल मशीन से निष्पादित करें):
scp target/myapp-0.0.1-SNAPSHOT.jar root@आपका-आईपी-पता:/opt/myapp/\n\nसर्वर पर एप्लिकेशन के लिए एक डायरेक्टरी बनाएं और फ़ाइल को स्थानांतरित करें:
\n\nmkdir -p /opt/myapp\nmv myapp-0.0.1-SNAPSHOT.jar /opt/myapp/myapp.jar\n\nजांचें कि JAR फ़ाइल मौजूद है और परीक्षण के लिए इसे मैन्युअल रूप से चलाएं:
\n\ncd /opt/myapp\njava -jar myapp.jar\n\nयदि एप्लिकेशन बिना किसी त्रुटि के चलता है, तो अगले चरण पर जाएं।
\n\n3. स्वचालित स्टार्टअप के लिए systemd कॉन्फ़िगर करना
\n\nएप्लिकेशन को सिस्टम स्टार्टअप पर स्वचालित रूप से शुरू करने और क्रैश होने पर पुनरारंभ करने के लिए, एक systemd सेवा बनाएं।
\n\nसेवा फ़ाइल बनाएं:
\n\nnano /etc/systemd/system/myapp.service\n\nनिम्नलिखित सामग्री डालें (youruser को उस उपयोगकर्ता नाम से बदलें जिसके तहत एप्लिकेशन चलेगा, या root छोड़ दें):
[Unit]\nDescription=My Java Spring Boot Application\nAfter=network.target\n\n[Service]\nUser=root\nWorkingDirectory=/opt/myapp\nExecStart=/usr/bin/java -jar /opt/myapp/myapp.jar\nSuccessExitStatus=143\nRestart=always\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target\n\nपैरामीटर का स्पष्टीकरण:
\n- \n
After=network.target— सेवा नेटवर्क उपलब्ध होने के बाद शुरू होती है। \n Restart=always— क्रैश होने पर स्वचालित पुनरारंभ। \n RestartSec=10— पुनरारंभ से पहले 10 सेकंड का विराम। \n SuccessExitStatus=143— स्टॉप सिग्नल का सही हैंडलिंग। \n
अब सेवा को सक्रिय करें और शुरू करें:
\n\nsystemctl daemon-reload\nsystemctl enable myapp\nsystemctl start myapp\n\nस्थिति जांचें:
\n\nsystemctl status myapp\n\nआपको Active: active (running) देखना चाहिए। अब आपका एप्लिकेशन शुरू हो जाएगा