परिचय: VPS आपके C# एप्लिकेशन के लिए क्यों सबसे अच्छा विकल्प है
\nC# और .NET इकोसिस्टम में डेवलपमेंट वेब एप्लिकेशन, API और माइक्रोसर्विसेज बनाने के लिए शक्तिशाली टूल्स प्रदान करता है। लेकिन कोड लिखना केवल आधा काम है। आपके एप्लिकेशन को उपयोगकर्ताओं के लिए उपलब्ध कराने के लिए इसे सर्वर पर डिप्लॉय करना ज़रूरी है। वर्चुअल प्राइवेट सर्वर (VPS) आपको पूर्ण नियंत्रण देता है, जो प्रोडक्शन एनवायरनमेंट के लिए बेहद महत्वपूर्ण है। इस गाइड में हम Ubuntu पर VPS पर एक पूरी तरह से काम करने वाला C# एप्लिकेशन डिप्लॉय करेंगे। आप सीखेंगे कि .NET Runtime कैसे इंस्टॉल करें, Nginx को रिवर्स प्रॉक्सी के रूप में सेट करें, एप्लिकेशन को systemd सर्विस के रूप में चलाएं और ऑटोमैटिक रीस्टार्ट सुनिश्चित करें।
\n\nसर्वर तैयार करना और आवश्यक सॉफ्टवेयर इंस्टॉल करना
\n1. VPS से कनेक्ट करें और बेसिक सेटिंग्स
\nVPS का एक्सेस (IP एड्रेस, यूज़रनेम, पासवर्ड या SSH की) मिलने के बाद, टर्मिनल से कनेक्ट करें:
\nssh root@आपका_सर्वर_IP\nपैकेज लिस्ट अपडेट करें और curl इंस्टॉल करें (.NET डाउनलोड के लिए):
\napt update && apt upgrade -y\napt install curl -y\n\n2. .NET SDK/Runtime इंस्टॉल करना
\nMicrosoft आधिकारिक रिपॉजिटरी से .NET इंस्टॉल करने की सलाह देता है। इसे जोड़ें और SDK इंस्टॉल करें (बिल्ड के लिए) या Runtime (केवल चलाने के लिए)। प्रोडक्शन सर्वर के लिए आमतौर पर Runtime काफी है, लेकिन डिप्लॉय की सुविधा के लिए हम SDK इंस्टॉल करेंगे:
\nwget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb\ndpkg -i packages-microsoft-prod.deb\napt update\napt install -y dotnet-sdk-8.0\nइंस्टॉलेशन जांचें:
\ndotnet --version\n\n3. Nginx और Git इंस्टॉल करना
\nNginx रिवर्स प्रॉक्सी का काम करेगा, पोर्ट 80 से अनुरोधों को आपके एप्लिकेशन पर फॉरवर्ड करेगा। Git रिपॉजिटरी क्लोन करने के लिए ज़रूरी है:
\napt install -y nginx git\nsystemctl enable nginx\nsystemctl start nginx\n\nC# एप्लिकेशन तैयार करना और पब्लिश करना
\n1. प्रोजेक्ट बनाना या क्लोन करना
\nउदाहरण के लिए, हम सर्वर पर ही एक सरल ASP.NET Core Web API एप्लिकेशन बनाएंगे (असल प्रोजेक्ट में आप रिपॉजिटरी क्लोन करेंगे):
\nmkdir /var/www/myapp\ncd /var/www/myapp\ndotnet new webapi --name MyApp\ncd MyApp\n\n2. एप्लिकेशन पब्लिश करना (self-contained)
\nएप्लिकेशन को बिना SDK के चलाने के लिए, इसे self-contained मोड में पब्लिश करें:
\ndotnet publish -c Release -r linux-x64 --self-contained true -o /var/www/myapp/publish\n--self-contained true फ्लैग .NET की सभी डिपेंडेंसी को publish फोल्डर में शामिल करता है। विकल्प के रूप में --self-contained false (Runtime इंस्टॉल होना ज़रूरी है) का उपयोग कर सकते हैं।
3. टेस्ट रन
\nजांचें कि एप्लिकेशन स्टार्ट होता है (डिफ़ॉल्ट रूप से पोर्ट 5000 पर):
\ncd /var/www/myapp/publish\n./MyApp --urls "http://0.0.0.0:5000"\nब्राउज़र में http://आपका_IP:5000 खोलें — आपको API का रिस्पॉन्स दिखना चाहिए। प्रक्रिया रोकें (Ctrl+C)।
Nginx को रिवर्स प्रॉक्सी के रूप में कॉन्फ़िगर करना
\n1. साइट कॉन्फ़िगरेशन
\nNginx के लिए कॉन्फ़िगरेशन फ़ाइल बनाएं:
\nnano /etc/nginx/sites-available/myapp\nनिम्न कोड डालें (your_domain_or_ip को अपने डोमेन या IP से बदलें):
server {\n listen 80;\n server_name your_domain_or_ip;\n\n location / {\n proxy_pass http://localhost:5000;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection keep-alive;\n proxy_set_header Host $host;\n proxy_cache_bypass $http_upgrade;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;\n }\n}\n\n2. कॉन्फ़िगरेशन को एक्टिवेट करना
\nln -s /etc/nginx/sites-available/myapp /etc/nginx