वास्तव में उपयोग कर रहा है nginx.conf फ़ाइल का पता लगाएँ


130

एक क्लाइंट के सर्वर पर काम करना जहाँ नगणक्स के दो अलग-अलग संस्करण स्थापित हैं। मुझे लगता है कि उनमें से एक काढ़ा पैकेज प्रबंधक (इसकी एक ऑक्स बॉक्स) के साथ स्थापित किया गया था और दूसरा लगता है कि इसे नगीनेक्स पैक मेकफाइल के साथ संकलित और स्थापित किया गया है। मैंने सर्वर पर सभी nginx.conf फ़ाइलों के लिए खोज की, लेकिन इनमें से कोई भी फ़ाइल उन मापदंडों को परिभाषित नहीं करती है जो nginx वास्तव में उपयोग कर रहा है जब मैं इसे सर्वर पर शुरू करता हूं। Nginx.conf फ़ाइल कहाँ है जिससे मैं अनजान हूँ?

जवाबों:


245

nginx -tआपकी कमांडलाइन के माध्यम से चल रहा है एक परीक्षण जारी करेगा और फ़ाइलपथ के साथ आउटपुट को कॉन्फ़िगरेशन फ़ाइल में जोड़ देगा (या तो एक त्रुटि या त्रुटि संदेश के साथ)।


33
% ps -o args -C nginx
COMMAND
build/sbin/nginx -c ../test.conf

यदि nginx -cविकल्प के बिना चलाया गया था , तो आप -Vगैर-मानक मानों पर सेट किए गए कॉन्फ़िगर किए गए तर्कों का पता लगाने के लिए विकल्प का उपयोग कर सकते हैं । उनमें से आपके लिए सबसे दिलचस्प हैं:

--prefix=PATH                      set installation prefix
--sbin-path=PATH                   set nginx binary pathname
--conf-path=PATH                   set nginx.conf pathname

1
मैंने आज्ञाओं को चलाने की कोशिश की, लेकिन उन्होंने मेरे लिए काम नहीं किया .. दूसरा
एवर

32

दोनों nginx -tऔर nginx -Vडिफ़ॉल्ट नगीने कॉन्फिग फाइल फाइल का प्रिंट आउट ले लेंगे।

$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

$ nginx -V
nginx version: nginx/1.11.1
built by gcc 4.9.2 (Debian 4.9.2-10)
built with OpenSSL 1.0.1k 8 Jan 2015
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf ...

यदि आप चाहते हैं, तो आप विन्यास फाइल को इसके द्वारा प्राप्त कर सकते हैं:

$ nginx -V 2>&1 | grep -o '\-\-conf-path=\(.*conf\)' | cut -d '=' -f2
/etc/nginx/nginx.conf

यहां तक ​​कि अगर आपने कुछ अन्य कॉन्फ़िग फ़ाइल लोड की है, तब भी वे डिफ़ॉल्ट मान का प्रिंट आउट करेंगे।


ps aux आपको वर्तमान लोड किए गए nginx config फ़ाइल दिखाएगा।

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        11  0.0  0.2  31720  2212 ?        Ss   Jul23   0:00 nginx: master process nginx -c /app/nginx.conf

ताकि आप वास्तव में उदाहरण के लिए विन्यास फाइल प्राप्त कर सकें:

$ ps aux | grep "[c]onf" | awk '{print $(NF)}'
/app/nginx.conf

7
which nginx

आपको उपयोग किए जा रहे nginx का रास्ता देगा


EDIT (2017-जनवरी -18)

इस जवाब पर विल पामर की टिप्पणी के लिए धन्यवाद, मैंने निम्नलिखित बातें जोड़ दी हैं ...

यदि आपने HomeBrew जैसे पैकेज मैनेजर के माध्यम से nginx स्थापित किया है ...

which nginx

आपको उपयोग किए जा रहे nginx को EXACT पथ नहीं दे सकता है। हालाँकि आप इसका उपयोग कर सकते हैं

realpath $(which nginx)

और जैसा कि @ डैनियल ली ने उल्लेख किया है

आप nginx का विन्यास उसकी विधि के माध्यम से प्राप्त कर सकते हैं

वैकल्पिक रूप से आप इसका उपयोग कर सकते हैं:

nginx -V

1
"जो" अधिकांश यूनिक्स आधारित प्रणालियों पर काम करता है। मैंने यह सुनिश्चित करने के लिए उबंटू पर टाइप किया कि मैंने अपना दिमाग नहीं खोया।
tqwhite

1
अरे वाह, मैं सही खड़ा हूँ। जवाब को तुरंत संशोधित करें। धन्यवाद
क्रेग वेन

1
which nginxवर्तमान उपयोगकर्ता के लिए केवल nginx के लिए डिफ़ॉल्ट पथ दिखाता है (वर्तमान उपयोगकर्ता भी नहीं - वर्तमान शेल )। यह निश्चित रूप से वह रास्ता नहीं दिखाता है जिसके लिए nginx "का उपयोग किया जा रहा है"।
विल पामर

2

अन्य सभी उत्तर उपयोगी हैं, लेकिन वे मामले में आपकी मदद नहीं कर सकते हैं इसलिए ऐसा nginxनहीं है जब PATHआप command not foundदौड़ने की कोशिश कर रहे होंnginx :

मेरे पास डेबियन 7 व्हीजे पर नगनेक्स 1.2.1 है, nginxनिष्पादन योग्य नहीं है PATH, इसलिए मुझे पहले इसे खोजने की आवश्यकता थी। यह पहले से ही चल रहा था, इसलिए ps aux | grep nginxमैंने उपयोग करके पाया कि यह स्थित है /usr/sbin/nginx, इसलिए मुझे दौड़ने की/usr/sbin/nginx -t आवश्यकता थी ।

यदि आप एक गैर-डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल (यानी नहीं /etc/nginx/nginx.conf) का उपयोग करना चाहते हैं , तो इसे -cपैरामीटर के साथ चलाएं /usr/sbin/nginx -c <path-to-configuration> -t:।

आपको इसे भी चलाने कीroot आवश्यकता हो सकती है , अन्यथा nginx में उदाहरण लॉग के लिए खोलने की अनुमति नहीं हो सकती है, इसलिए कमांड विफल हो जाएगी।


1

@ डैनियल ली के जवाब के अलावा, वैलेट के साथ नेगनेक्स इंस्टॉलेशन वीलेट कॉन्फ़िगरेशन का भी उपयोग करेगा, यह "/usr/local/etc/nginx/valet/valet.conf" में पाया जाता है। Nginx.conf फ़ाइल ने इस Valet conf फ़ाइल को आयात किया होगा। आपको जिन सेटिंग्स की आवश्यकता है, वे वैलेट फ़ाइल में हो सकती हैं।

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