Nginx'in aslında kullandığı nginx.conf dosyasını bulun


131

İki farklı nginx sürümünün kurulu olduğu bir istemcinin sunucusunda çalışmak. Sanırım bunlardan biri demleme paket yöneticisi (bir osx kutusu) ile kurulmuş, diğeri ise nginx paketlenmiş Makefile ile derlenmiş ve kurulmuş gibi görünüyor. Sunucudaki tüm nginx.conf dosyalarını aradım, ancak bu dosyalardan hiçbiri nginx'in sunucuda başlattığımda gerçekte kullandığı parametreleri tanımlamıyor. Farkında olmadığım nginx.conf dosyası nerede?

Yanıtlar:


247

Koşu nginx -tsenin komut aracılığıyla testi sorunu ve (bir hata veya başarı mesajla biriyle) yapılandırma dosyasının filepath ile çıktı ekler.


34

Her ikisi nginx -tve nginx -Vvarsayılan nginx yapılandırma dosyası yolunu yazdırır.

$ 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 ...

İsterseniz, yapılandırma dosyasını şu şekilde alabilirsiniz:

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

Başka bir yapılandırma dosyası yüklemiş olsanız bile, bunlar yine de varsayılan değeri yazdıracaktır.


ps aux size mevcut yüklü nginx yapılandırma dosyasını gösterir.

$ 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

Böylece yapılandırma dosyasını örneğin şu şekilde alabilirsiniz:

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

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

Eğer nginx -cseçenek olmadan çalıştırıldıysa , -Vstandart olmayan değerlere ayarlanmış olan configure argümanlarını bulmak için seçeneği kullanabilirsiniz . Bunların arasında sizin için en ilginç olanı:

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

1
Komutları çalıştırmayı denedim ama benim için işe yaramadılar .. İkinci
cevap

7
which nginx

size kullanılan nginx'in yolunu verecek


EDIT (2017 Ocak 18)

Will Palmer'ın bu cevapla ilgili yorumu sayesinde şunları ekledim ...

Nginx'i HomeBrew gibi bir paket yöneticisi aracılığıyla kurduysanız ...

which nginx

size kullanılan nginx'in TAM yolunu vermeyebilir . Ancak bunu kullanarak bulabilirsiniz

realpath $(which nginx)

ve @Daniel Li'nin bahsettiği gibi

nginx'in yapılandırmasını onun yöntemi ile alabilirsiniz

alternatif olarak bunu kullanabilirsiniz:

nginx -V

1
"hangi" Unix tabanlı sistemlerin çoğunda çalışır. Aklımı kaybetmediğimden emin olmak için Ubuntu'ya yazdım.
tqwhite

1
Vay canına, düzeltilmiş durumdayım. cevabı hemen değiştirmek. teşekkürler
Craig Wayne

1
which nginxsadece geçerli kullanıcı için nginx için varsayılan yolu gösterir (mevcut kullanıcı için bile - mevcut kabuk ). Kesinlikle nginx'in "kullanıldığı" yolu göstermez.
Will Palmer

2

Diğer tüm cevaplar kullanışlıdır, ancak açık değilse size yardımcı nginxolmayabilirler, PATHbu yüzden command not foundkoşmaya çalışırken alıyorsunuznginx :

Debian 7 Wheezy'de nginx 1.2.1 var, nginxçalıştırılabilir dosya açık değil PATH, bu yüzden önce onu bulmam gerekiyordu. Zaten çalışıyordu, bu yüzden kullanarak ps aux | grep nginxonun üzerinde bulunduğunu öğrendim /usr/sbin/nginx, bu yüzden çalıştırmam/usr/sbin/nginx -t gerekiyordu .

Eğer varsayılan olmayan bir yapılandırma dosyası (yani değil kullanmak isterseniz /etc/nginx/nginx.conf) ile çalıştırın -cparametresi: /usr/sbin/nginx -c <path-to-configuration> -t.

Aynı zamanda onu olarak çalıştırmanızroot gerekebilir, aksi takdirde nginx'in örneğin günlükleri açma izni olmayabilir, bu nedenle komut başarısız olur.


1

@Daniel Li'nin cevabına ek olarak, Valet ile nginx kurulumu da Velet yapılandırmasını kullanacaktır, bu "/usr/local/etc/nginx/valet/valet.conf" içinde bulunur. Nginx.conf dosyası, bu Valet conf dosyasını içe aktarırdı. İhtiyaç duyduğunuz ayarlar Vale dosyasında olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.