找到nginx实际使用的nginx.conf文件

eni9jsuy  于 2023-01-25  发布在  Nginx
关注(0)|答案(8)|浏览(145)

在一个客户端的服务器上工作,那里安装了两个不同版本的nginx。我认为其中一个是用brew包管理器安装的(它是一个OSX盒子)另一个似乎是用Nginx打包的Makefile编译和安装的。我搜索了服务器上所有的Nginx.conf文件,但是这些文件都没有定义我在服务器上启动nginx时实际使用的参数。我不知道的nginx.conf文件在哪里?

ycggw6v2

ycggw6v21#

通过命令行运行nginx -t将发出一个测试,并将带有文件路径的输出附加到配置文件(带有错误或成功消息)。

hgtggwj0

hgtggwj02#

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
9cbw7uwe

9cbw7uwe3#

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

如果nginx在运行时没有-c选项,那么你可以使用-V选项来找出设置为非标准值的configure参数。

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

bksxznpy4#

which nginx

我将给予正在使用的nginx的路径

编辑(2017年1月18日)

感谢威尔·帕尔默对这个答案的评论,我补充了以下内容......
如果您已经通过软件包管理器(如HomeBrew)安装了nginx...

which nginx

可能不会给予您正在使用的nginx的EXACT路径。但是您可以使用

realpath $(which nginx)

正如@丹尼尔Li提到的
你可以通过他的方法得到nginx的配置
或者你可以使用这个:

nginx -V
w8rqjzmb

w8rqjzmb5#

所有其他答案都是有用的,但如果**nginx不在PATH上,因此您在尝试运行nginx时得到command not found,则这些答案可能对您没有帮助**:
我在Debian 7上安装了nginx 1.2.1,nginx可执行文件不在PATH上,所以我需要先找到它。它已经在运行了,所以使用ps aux | grep nginx我发现它位于/usr/sbin/nginx上,所以我需要运行/usr/sbin/nginx -t
如果您想使用非默认配置文件(即非/etc/nginx/nginx.conf),请使用-c参数运行该文件:一米一米一。
您可能还需要**以root**的身份运行它,否则nginx可能没有打开例如日志的权限,因此命令将失败。

aor9mmx1

aor9mmx16#

除了@丹尼尔的回答,使用Valet安装nginx也会使用Velet配置;这是在/usr/local/etc/nginx/valet/valet.conf中找到的。nginx.conf文件将导入此Valet conf文件。
您需要的设置可能在Valet文件中。

w41d8nur

w41d8nur7#

nginx.conf在MacOS中的路径

/usr/local/etc/nginx/nginx.conf
3mpgtkmj

3mpgtkmj8#

让我们保存时间
你可以找到你的nginx.conf文件或任何文件使用mlocate
1个月1次1个月1次
1百万2百万美元

如果未安装mlocate软件包或错误:mlocate没有安装候选项

因此,您应按以下步骤操作:
1百万3百万美元
1百万4百万美元

1百万5百万美元
1百万6千1百万美元
希望你的问题能得到解决。

相关问题