web-dev-qa-db-ja.com

私のnginxが実際に使用しているnginx.confファイルを見つけます

Nginxの2つの異なるバージョンがインストールされているクライアントのサーバーでの作業。それらの1つはbrewパッケージマネージャー(osxボックス)でインストールされ、もう1つはnginxパッケージのMakefileでコンパイルおよびインストールされたようです。サーバー上のすべてのnginx.confファイルを検索しましたが、これらのファイルはどれも、nginxがサーバー上で起動するときに実際に使用するパラメーターを定義していません。私が知らないnginx.confファイルはどこにありますか?

107
b.b.

コマンドラインでnginx -tを実行すると、テストが発行され、出力にファイルパスが設定ファイルに追加されます(エラーメッセージまたは成功メッセージが表示されます)。

207
Daniel Li
% 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
31
VBart

nginx -tnginx -Vの両方が、デフォルトのnginx構成ファイルパスを出力します。

$ 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構成ファイルを表示します。

$ 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
23
Jing Li
which nginx

使用されているnginxのパスを提供します


編集(2017-Jan-18)

この答えに対するウィル・パーマーのコメントのおかげで、私は以下を追加しました...

HomeBrewなどのパッケージマネージャーを介してnginxをインストールした場合...

which nginx

使用されているnginxへのEXACTパスを提供しない場合があります。ただし、それを使用して見つけることができます

realpath $(which nginx)

@Daniel Liが述べたように

彼の方法でnginxの設定を取得できます

または、これを使用することができます:

nginx -V
7
Craig Wayne

@Daniel Liの回答に加えて、Valetを使用したnginxのインストールではVelet構成も使用します。これは「/usr/local/etc/nginx/valet/valet.conf」にあります。 nginx.confファイルは、このValet confファイルをインポートします。必要な設定は、Valetファイルに含まれている場合があります。

1
Olusola Omosola

私の場合は、Debian 7 Wheezyのnginx 1.2.1で、nginxPATHになく、/usr/sbin/nginxにあるので、追加する必要があるので、run /usr/sbin/nginx -tが必要です。

デフォルト以外の構成ファイル(つまり、/etc/nginx/nginx.confではない)を使用する場合は、-cパラメーターを使用して実行します:/usr/sbin/nginx -c <path-to-configuration> -t

rootとして実行が必要な場合もあります。そうしないと、nginxがログなどを開く権限を持たないため、コマンドが失敗します。