VPS पर C# एप्लिकेशन का डिप्लॉय: उन्नत स्तर

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

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

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

VPS पर C# (.NET) एप्लिकेशन का उन्नत डिप्लॉय: चरण-दर-चरण मार्गदर्शिका

\n\n

VPS पर C# एप्लिकेशन का डिप्लॉय केवल सर्वर पर फ़ाइलों को कॉपी करना नहीं है। प्रोडक्शन वातावरण के लिए व्यापक सेटअप की आवश्यकता होती है: रिवर्स प्रॉक्सी कॉन्फ़िगरेशन से लेकर डिप्लॉयमेंट ऑटोमेशन तक। इस लेख में, हम उन्नत डिप्लॉय तकनीकों पर चर्चा करेंगे जिनका उपयोग अनुभवी डेवलपर्स करते हैं। आप Nginx सेटअप करना, HTTPS कनेक्ट करना, CI/CD और मॉनिटरिंग लागू करना सीखेंगे।

\n\n

1. सर्वर तैयार करना और .NET Runtime स्थापित करना

\n\n

डिप्लॉय शुरू करने से पहले, सुनिश्चित करें कि आपका VPS Ubuntu 22.04 या उससे नए संस्करण पर चल रहा है। SSH के माध्यम से कनेक्ट करें और बुनियादी सेटअप करें।

\n\n
# सिस्टम अपडेट\nsudo apt update && sudo apt upgrade -y\n\n# .NET SDK (बिल्ड के लिए) और Runtime (चलाने के लिए) स्थापित करना\nwget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh\nchmod +x dotnet-install.sh\nsudo ./dotnet-install.sh --channel 8.0 --install-dir /usr/share/dotnet\nsudo ln -s /usr/share/dotnet/dotnet /usr/local/bin/dotnet\n\n# स्थापना की जाँच\ndotnet --list-runtimes
\n\n

प्रोडक्शन के लिए, इमेज का आकार कम करने के लिए केवल Runtime का उपयोग करने की अनुशंसा की जाती है। SDK केवल बिल्ड मशीन (जैसे CI/CD में) पर आवश्यक है।

\n\n

2. प्रोडक्शन के लिए एप्लिकेशन को ऑप्टिमाइज़ करना

\n\n

डिप्लॉय से पहले, एप्लिकेशन को प्रोडक्शन वातावरण में काम करने के लिए कॉन्फ़िगर करें। इसमें Kestrel कॉन्फ़िगरेशन, लॉगिंग और त्रुटि प्रबंधन शामिल है।

\n\n

2.1. Program.cs की सेटअप

\n\n

Program.cs फ़ाइल में, स्पष्ट पोर्ट निर्दिष्ट करें और HTTPS रीडायरेक्शन सक्षम करें (यदि आप reverse proxy का उपयोग कर रहे हैं)।

\n\n
var builder = WebApplication.CreateBuilder(args);\n\n// रिवर्स प्रॉक्सी के माध्यम से काम करने के लिए Kestrel कॉन्फ़िगरेशन\nbuilder.WebHost.ConfigureKestrel(options =>\n{\n    options.Listen(IPAddress.Any, 5000); // Nginx के लिए HTTP पोर्ट\n});\n\n// सेवाएँ जोड़ना\nbuilder.Services.AddControllersWithViews();\nbuilder.Services.AddHealthChecks();\n\nvar app = builder.Build();\n\n// प्रोडक्शन के लिए Middleware\nif (!app.Environment.IsDevelopment())\n{\n    app.UseExceptionHandler("/Home/Error");\n    app.UseHsts();\n}\n\napp.UseStaticFiles();\napp.UseRouting();\napp.UseAuthorization();\n\napp.MapHealthChecks("/health");\napp.MapControllerRoute(\n    name: "default",\n    pattern: "{controller=Home}/{action=Index}/{id?}");\n\napp.Run();
\n\n

2.2. बिल्ड और पब्लिश

\n\n

एप्लिकेशन को self-contained के रूप में बिल्ड करें ताकि सर्वर पर स्थापित Runtime पर निर्भर न रहना पड़े।

\n\n
dotnet publish -c Release -r linux-x64 --self-contained true -o ./publish
\n\n

यह कमांड सभी आवश्यक फ़ाइलों के साथ publish फ़ोल्डर बनाएगा। इसे scp या rsync का उपयोग करके सर्वर पर स्थानांतरित करें।

\n\n

3. रिवर्स प्रॉक्सी के रूप में Nginx की सेटअप

\n\n

Nginx आने वाले अनुरोधों को प्राप्त करेगा और उन्हें आपके C# एप्लिकेशन पर रीडायरेक्ट करेगा। इससे प्रदर्शन और सुरक्षा में सुधार होता है।

\n\n

3.1. स्थापना और बुनियादी कॉन्फ़िगरेशन

\n\n
sudo apt install nginx -y\nsudo systemctl start nginx\nsudo systemctl enable nginx
\n\n

अपने एप्लिकेशन के लिए एक कॉन्फ़िगरेशन फ़ाइल बनाएँ:

\n\n
sudo nano /etc/nginx/sites-available/myapp
\n\n

निम्नलिखित कोड डालें:

\n\n
server {\n    listen 80;\n    server_name your-domain.com www.your-domain.com;\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    location /health {\n        access_log off;\n        return 200 "Healthy\\n";\n        add_header Content-Type text/plain;\n    }\n}
\n\n

साइट को सक्रिय करें और Nginx को पुनरारंभ करें:

\n<

ब्लॉग

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