Найдите файл nginx.conf, мой nginx на самом деле использует

Работа на клиентском сервере, где установлены две разные версии nginx. Я думаю, что один из них был установлен с менеджером пакетов brew (его osx-бокс), а другой, похоже, был скомпилирован и установлен с пакетом Makefile nginx. Я искал все файлы nginx.conf на сервере, но ни один из этих файлов не определяет параметры, которые nginx фактически использует, когда я запускаю его на сервере. Где находится файл nginx.conf, о котором я не знаю?

Ответ 1

Запуск nginx -t через вашу командную строку выдает тест и добавляет результат с файловой дорожкой в ​​файл конфигурации (с сообщением об ошибке или успеху).

Ответ 2

% 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

Ответ 3

Оба nginx -t и nginx -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

Ответ 4

which nginx

предоставит вам путь используемого nginx

и, как упоминалось в @Daniel Li

вы можете получить конфигурацию nginx через свой метод

альтернативно вы можете использовать это:

nginx -V

Ответ 5

В дополнение к @Daniel Li ответ, установка nginx с Valet также будет использовать конфигурацию Velet, это можно найти в "/usr/local/etc/nginx/valet/valet.conf". Файл nginx.conf импортировал бы этот файл conf. Необходимые настройки могут быть в файле Valet.