अपने Linux सर्वर पर पहले एक फ़ोल्डर बनाएँ, उदाहरण के लिए इसका नाम myweb रखें। फ़ोल्डर की अनुमतियों को सही तरीके से सेट करें; मानक डिफ़ॉल्ट मान 0755 है। 0755 का मतलब है rwxr-xr-x अनुमतियाँ:
अन्य उपयोगकर्ता: केवल पढ़ने और चलाने की अनुमति (r-x)
स्वामी (आपका उपयोगकर्ता खाता): पढ़ना, लिखना और चलाना — सभी अनुमतियाँ (rwx)
समूह सदस्य: केवल पढ़ने और चलाने की अनुमति (r-x)
इसके बाद Visual Studio से प्रोजेक्ट प्रकाशित करें। पहले बिल्ड कॉन्फ़िगरेशन को Release पर स्विच करें और प्रोजेक्ट को संकलित करें, फिर प्रोजेक्ट पर राइट-क्लिक करके प्रकाशित चुनें। प्रकाशन पूर्ण होने के बाद FTP क्लाइंट का उपयोग करके प्रकाशन फ़ोल्डर की सभी फ़ाइलों को नए बने myweb डायरेक्टरी में कॉपी करें।
cd /usr/myweb
फ़ाइलें स्थानांतरित होने के बाद नीचे दिए गए कमांड को चलाकर एप्लिकेशन को बैकग्राउंड प्रक्रिया के रूप में शुरू करें। बैकग्राउंड में चलने पर Linux का रिमोट SSH विंडो बंद करने के बाद भी प्रोग्राम चलता रहता है।
sudo nohup dotnet yourprogramname.dll &Code language: CSS (css)
कमांड के अंत में मौजूद & चिह्न बैकग्राउंड रन के लिए जरूरी है। इसे हटाने पर एप्लिकेशन फोरग्राउंड में चलेगा और टर्मिनल बंद करने या Ctrl + C दबाने पर तुरंत बंद हो जाएगा।
यहाँ मेरा वास्तविक उदाहरण है: sudo nohup dotnet WebSite.dll &
महत्वपूर्ण अतिरिक्त नोट
प्रकाशन से पहले पोर्ट सेटिंग कॉन्फ़िगर करें। .NET MVC प्रोजेक्ट के अंदर स्थित appsettings.json फ़ाइल खोलें।
नीचे दिए गए कॉन्फ़िगरेशन को टेम्पलेट के रूप में जोड़ें:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8080"
}
}
}
}Code language: JSON / JSON with Comments (json)
यह कॉन्फ़िगरेशन पोर्ट 8080 के माध्यम से किसी भी IP पते से कनेक्शन स्वीकार करती है। आप Nginx को रिवर्स प्रॉक्सी के रूप में उपयोग कर सकते हैं और एक ही Linux सर्वर पर कई अलग-अलग डोमेन होस्ट कर सकते हैं।
यदि आप केवल Nginx का उपयोग रिवर्स प्रॉक्सी के लिए करते हैं, तो फ़ायरवॉल में इस पोर्ट को खोलने की आवश्यकता नहीं है। ऐसे में सेवा को केवल लोकल पते से जोड़ें जैसा कि नीचे दिखाया गया है:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://127.0.0.1:8080"
}
}
}
}Code language: JSON / JSON with Comments (json)
यह सेटिंग लागू होने पर एप्लिकेशन केवल लोकल अनुरोध स्वीकार करेगा और बाहर से आने वाले सभी सीधे कनेक्शन को ब्लॉक कर देगा।
मेरा अंतिम लक्ष्य abc.com/hello पते से इस एप्लिकेशन को एक्सेस करना है।
इसके बाद एप्लिकेशन शुरू करने के लिए sudo nohup dotnet WebSite.dll & कमांड चलाएँ।
इस कमांड से जाँचें कि एप्लिकेशन सही तरीके से चल रहा है या नहीं: ps -aux | grep WebSite.dll
संबंधित प्रक्रिया की एंट्री दिखाई देने का मतलब है कि सेवा सफलतापूर्वक शुरू हो गई है।
Nginx रिवर्स प्रॉक्सी सेटअप करें (यदि प्रॉक्सी की आवश्यकता न हो तो यह भाग छोड़ें)
यदि Nginx पहले से इंस्टॉल है, तो मुख्य कॉन्फ़िगरेशन फ़ाइल /etc/nginx/nginx.conf पर स्थित है।
/etc/nginx/sites-available/default पथ पर मौजूद साइट कॉन्फ़िगरेशन फ़ाइल को संपादित करें।
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/web/xxxx;
index index.html index.htm index.nginx-debian.html;
server_name _;
# मुख्य साइट
location / {
try_files $uri $uri/ =404;
}
# ✅ महत्वपूर्ण: /hello को .NET पर रीडायरेक्ट करें
location /hello {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
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_header X-Forwarded-Proto $scheme;
}
}Code language: PHP (php)
परिवर्तन सहेजने के बाद Nginx को पुनरारंभ करें
sudo nginx -t
sudo systemctl restart nginx
अब .NET MVC एप्लिकेशन को पुनरारंभ करें।
पहले ps -aux | grep WebSite.dll से चल रही प्रक्रिया खोजें, फिर संबंधित sudo लाइन के शुरुआत में दिए गए PID नंबर को नोट करें।
उस PID का उपयोग करके चल रहे .NET MVC इंस्टेंस को बंद करें।
यह कमांड चलाकर सेवा को दोबारा शुरू करें: sudo nohup dotnet 你的项目.dll –urls http://127.0.0.1:8080 > /dev/null 2>&1 &
अब पूर्ण परीक्षण करें।
Nginx पुनरारंभ करें
नीचे दिया कमांड चलाएँ:
bash
चलाएँ:
sudo systemctl restart nginx
.NET पोर्ट 8080 पर लिसन कर रहा है
.NET सेवा की स्थिति जाँचने के लिए यह कमांड उपयोग करें:
bash
चलाएँ:
curl http://127.0.0.1:8080
यदि टर्मिनल में रॉ HTML कंटेंट दिखाई दे तो एप्लिकेशन सही तरीके से चल रहा है।
