find我的nginx实际使用的nginx.conf文件
在安装有两个不同版本的nginx的客户端服务器上工作。 我认为其中一个已经安装了brew包pipe理器(它是一个osx盒子),另外一个似乎是用nginx打包的Makefile进行编译和安装的。 我search了服务器上的所有nginx.conf文件,但是这些文件都没有定义nginx在服务器上启动它时实际使用的参数。 我不知道nginx.conf文件在哪里?
通过命令行运行nginx -t
会发出一个testing,并将带有文件path的输出附加到configuration文件(带有错误或成功消息)。
% ps -o args -C nginx COMMAND build/sbin/nginx -c ../test.conf
如果nginx运行时没有使用-c
选项,那么你可以使用-V
选项来找出被设置为非标准值的configuration参数。 其中最有趣的是你:
--prefix=PATH set installation prefix --sbin-path=PATH set nginx binary pathname --conf-path=PATH set nginx.conf pathname
nginx -t
和nginx -V
都会打印出默认的nginxconfiguration文件path。
$ 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 ...
如果你愿意,你可以通过以下方式获得configuration文件:
$ nginx -V 2>&1 | grep -o '\-\-conf-path=\(.*conf\)' | cut -d '=' -f2 /etc/nginx/nginx.conf
即使你已经加载了一些其他的configuration文件,他们仍然会打印出默认值。
ps aux
会显示当前加载的nginxconfiguration文件。
$ 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
所以你可以实际得到configuration文件,例如:
$ ps aux | grep "[c]onf" | awk '{print $(NF)}' /app/nginx.conf
which nginx
会给你正在使用的nginx的path
正如@Daniel Li所说的
你可以通过他的方法获得nginx的configuration
或者你可以使用这个:
nginx -V
除了@Daniel Li的回答之外,与Valet的nginx安装也将使用Veletconfiguration,这在“/usr/local/etc/nginx/valet/valet.conf”中find。 nginx.conf文件将会导入这个代客configuration文件。 您需要的设置可能在代客文件中。