मेरी त्रुटि लॉग में मुझे मिलता है
[emerg] 10619 # 0: /etc/nginx/sites-enabled/mysite.com:4 में 0.0.0.0:80 के लिए एक डुप्लिकेट डिफ़ॉल्ट सर्वर
लाइन 4 पर मेरे पास है:
server_name mysite.com www.mysite.com;
कोई सुझाव?
मेरी त्रुटि लॉग में मुझे मिलता है
[emerg] 10619 # 0: /etc/nginx/sites-enabled/mysite.com:4 में 0.0.0.0:80 के लिए एक डुप्लिकेट डिफ़ॉल्ट सर्वर
लाइन 4 पर मेरे पास है:
server_name mysite.com www.mysite.com;
कोई सुझाव?
जवाबों:
आपके पास अन्य फ़ाइलें (जैसे defaultकॉन्फ़िगरेशन) स्थित /etc/nginx/sites-enabledहैं जिन्हें निकालने की आवश्यकता है।
यह समस्या आपकी फ़ाइलों में default_serverएक या अधिक listenनिर्देशों के लिए दिए गए पैरामीटर के दोहराव के कारण होती है । आप संभवतः इस परस्पर विरोधी निर्देश को कुछ इसी तरह पढ़ेंगे:
listen 80 default_server;
राज्यों के लिए nginx कोर मॉड्यूल प्रलेखन केlisten रूप में :
default_serverपैरामीटर, यदि मौजूद है, सर्वर निर्दिष्ट के लिए डिफ़ॉल्ट सर्वर बनने के लिए कारण होगाaddress:portजोड़ी। यदि किसी भी निर्देश मेंdefault_serverपैरामीटर नहीं है, तोaddress:portजोड़ी के साथ पहला सर्वर इस जोड़ी के लिए डिफ़ॉल्ट सर्वर होगा।
इसका मतलब है कि पोर्ट 80 के सेट के serverसाथ आपके कॉन्फ़िगरेशन में कोई अन्य फ़ाइल या ब्लॉक परिभाषित होना चाहिए default_server। nginx का सामना हो रहा है कि आपकी mysite.comफ़ाइल से पहले पहले तो दूसरे कॉन्फ़िगरेशन को निकालने या समायोजित करने का प्रयास करें।
यदि आप यह पता लगाने के लिए संघर्ष कर रहे हैं कि ये निर्देश और पैरामीटर कहाँ सेट हैं, तो इस तरह से खोज करें:
grep -R default_server /etc/nginx
default_serverकीवर्ड है जो केवल एक ही कॉन्फ़िगरेशन में दिखाई दे सकता है - आपके पास कई साइटें हैं जो परिभाषित हो सकती हैंlisten 80;
default_serverपैरामीटर केवल प्रत्येक address:portजोड़ी के लिए एक बार दिखाई दे सकता है । इसका मतलब यह है कि यह संभव है (और आम) default_serverसमग्र nginx विन्यास में कई बार प्रस्तुत करने के लिए, लेकिन अलग-अलग आईपी / बंदरगाहों पर लागू होता है।
एक ही पोर्ट को सुनने वाले परस्पर विरोधी कॉन्फ़िगरेशन को देखने के लिए टर्मिनल पर इसे निष्पादित करें:
grep -R default_server /etc/nginx
ओएस डेबियन 10 + nginx। मेरे मामले में, मैंने "डिफ़ॉल्ट" पृष्ठ को इस तरह से खोल दिया:
यदि आप डिजिटल महासागर में हैं, तो इसका मतलब है कि आपको / etc / nginx / sites-enable / और फिर rm -R digitalocean और default का उपयोग करके REMOVE करने की आवश्यकता है
इसने मेरे लिए इसे ठीक कर दिया!
rm -R previousServerFolderNameतो sudo service nginx restartबनाने के लिए systemctl status nginxशो "सक्रिय (चल)"
server {}अपनाlistenनिर्देशन होना चाहिए ।