फिर से लोड करने में नाकाम - कैसे नीचे ट्रैक करने के लिए?


96

नमस्ते, मैं कुछ समय के लिए Ubuntu सर्वर 12.04 पर अपने Nginx सर्वर महान चल रहा है।

मैं धीरे-धीरे विभिन्न बिट्स पर बोल रहा हूं, और जहां तक ​​मेरे वर्डप्रेस पेज पर लोड समय का अनुकूलन करने का सवाल है।

अपनी मेजबानों की फ़ाइल में कुछ बदलाव करने के बाद मैंने फैसला किया:

sudo /etc/init.d/nginx reload

जो मुझे मिलता है:

  • पुन: लोड कर रहा है nginx कॉन्फ़िगरेशन nginx [विफल]

कोई अतिरिक्त जानकारी या तर्क नहीं दिया जाता है। मैं अपने सर्वर को कैसे पुनः आरंभ कर सकता हूं ताकि यह पुनः लोड करते समय किसी भी त्रुटि विवरण को प्रिंट करता है ताकि मैं त्रुटि को ट्रैक करना शुरू कर सकूं।

एक बोनस प्रश्न के लिए:

उन Nginx sysadmins के लिए, जब आपने मेजबानों में परिवर्तन का एक गुच्छा बनाया है और कुछ अन्य बिट्स पर बोल्ट किया है और अचानक आपका nginx सर्वर पुनः लोड नहीं होगा (संयोग से सब कुछ अभी भी चल रहा है!) आप अलग करने के लिए अपना दृष्टिकोण कैसे शुरू करते हैं? क्यों या डीबग करने के लिए चीजों को तोड़ना शुरू करें!


4
sudo nginx -t(या sudo nginx -p /etc/nginx -c nginx.confजहां /etc/nginxआपका कॉन्फ़िगरेशन उपसर्ग और nginx.confमुख्य कॉन्फ़िगरेशन फ़ाइल है) के साथ अपने सिंटैक्स की जाँच करें ।
लेकेन्स्टाइन

sudo nginx -s reload भी मुझे एक रीडआउट देने के लिए लग रहा था!
हुआव

जवाबों:


145

कॉन्फ़िग फ़ाइल समस्याओं के बारे में संदेशों के लिए syslog (/ var / log / syslog) की जाँच करें।

कमांडलाइन से आप चला सकते हैं:

nginx -c /etc/nginx/nginx.conf -t

nginx त्रुटियों के लिए अपने कॉन्फ़िगरेशन की जाँच करें।


आह हा! बहुत उपयोगी मुझे प्रतीत हो रहा है: स्थान "/ ब्लॉग / wp-admin" बाहरी स्थान "/blog/.*\.php$" में /etc/nginx/site-configs/wordpress.conf1.1 ... दिलचस्प है , मुझे जाने के लिए कुछ देता है!
हुआव

2
आह! तीन घंटे की खोज और यह पता चला है कि मैं चूक गया था; सभी मदद के लिए धन्यवाद, इसे ट्रैक करने में आवश्यक साबित हुआ। संयोग से यदि कोई भी कभी भी Ars Technica Web- सेवारत पदों का पालन करने के बाद इस प्रश्न पर समाप्त होता है। मुझे लगता है कि मैं अब उनके साथ ठीक दांतों की कंघी लेकर आया हूँ!
हुव

4
इस कमांड को चलाने से मुझे nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfulऔर फिर भी मुझे शुरू करने के लिए अभी भी nginx नहीं मिल सकता है
बिल गैरिसन

1
@BillGarrison syslog और nginx त्रुटि लॉग की अधिक जानकारी के लिए लॉग करें
Dlloyd


7

आपको शायद त्रुटियों के लिए जाँच करनी चाहिए /var/log/nginx/error.log

मेरे मामले में मैंने ipv6 के लिए पोर्ट नहीं जोड़ा है। आपको यह भी करना चाहिए (यदि आप 80 के अलावा किसी पोर्ट पर नेनेक्स चला रहे हैं): listen [::]:8000 default_server ipv6only=on;


1
नोट: यदि आपकी अनुमतियां गलत हैं /var/log/nginx/error.log, तो nginx उस पर त्रुटि नहीं लिख पाएगा और चुपचाप विफल हो जाएगा। स्वीकृत उत्तर ( nginx -c /etc/nginx/nginx.conf -t) के रूप में अपने कॉन्फिग को जाँचने से मदद मिलेगी।
user898763452

5

मैं इन आदेशों को वापस पाने के लिए भाग गया और काम कर रहा था:

# remove nginx conf files
apt-get purge nginx

# reinstall
apt-get install nginx

# make sure the default site is enabled
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

# start nginx
sudo /etc/init.d/nginx start 

अब काम कर रहा है !!


2
आपको निकालना और शुद्ध करना नहीं है, बस शुद्ध करना है। और यह जानना मुश्किल है कि क्या यह सवाल का जवाब देना है क्योंकि पर्स सभी कॉन्फ़िगरेशन फ़ाइलों को हटा देगा।
पैंथर

1
आदर्श रूप से - और अन्य उपयोगकर्ताओं के लिए, मैंने पठन की अधिकतम राशि प्राप्त करने को प्राथमिकता दी होगी, जहां विफलता हो रही थी और अपने वर्तमान इंस्टॉलेशन को शुद्ध करने और खरोंच से शुरू करने के बजाय मरम्मत करें
Huw

1
@ bodhi.zazen मैंने अपना जवाब सही किया। और जैसा कि "हू" ने कहा, मैं सहमत हूं। यह सिर्फ इतना है कि मैं स्थापित करने और स्थापित करने की शुरुआत में था, nginxइसलिए इसे हटाने और त्रुटि को ट्रेस करने के बजाय इसे शुरू करना कोई बड़ी बात नहीं थी। अपनी जिद के लिए दोनों का शुक्रिया।
आरोन लेलेयर

मेरे मामले में मुझे केवल इस आदेश का उपयोग करना शुरू करना था sudo /etc/init.d/nginx start
कोड

3

अपनी /etc/nginx/sites-available/defaultया उसकी जो भी कॉपी आप उपयोग कर रहे हैं, उसकी जांच करें और सुनिश्चित करें कि आपके द्वारा उस संभावना के संबंध में आपके द्वारा की जा सकने वाली #किसी भी }आवश्यकता को आप हटा सकते हैं {। यह मेरा मुद्दा था।


2

Nginx शुद्ध करने की आवश्यकता है तो कमांड लाइन पर टाइप करें:

ln -s /etc/nginx/sites-availbale/default .etc/nginx/sites-enabled/default

क्या आपका मतलब है apt-get purge?
रोलंडीएक्सॉर

2

का उपयोग कर सभी फ़ाइलों को फिर से खोलें

nginx -s reopen

तो उपयोग करें

nginx -s reload

के रूप में nginx मदद से पता चलता है कि यह, मास्टर प्रक्रिया के लिए संकेत भेजकर nginx को फिर से लोड करेगा। यह काम करना चाहिए।

निवेदन: कृपया purgeबिना सावधानी के आज्ञा दें, क्योंकि यह शुरुआती लोगों के लिए समस्या का कारण बन सकता है (सभी कॉन्फ़िगरेशन खो जाएंगे) .... AIG परेशानी।


1

यदि यह आपको ऐसी त्रुटियां दे रहा है तो आप जांच कर सकते journalctl -xeहैं।
यह एक ऑपरेशन सिस्टम मामले में क्या हुआ के बारे में जानकारी का गुच्छा है।
आप लाइन पा सकते हैं या बस journalctl -xe | grep nginxयह पता लगाने के लिए कि नंगेक्स को क्या हुआ है जब उसने खुद को चलाने की कोशिश की थी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.