0


快速找到nginx用的是哪个配置文件

背景

在工作中会碰到一台服务器安装了多个nginx的服务的情况。

Nginx的主配置文件有的在/etc/nginx/nginx.conf而有的在/usr/local/nginx/conf/nginx.conf,还有很多情况配置文件在很多自定义的位置。

问题点

1.当前nginx服务的主配置文件具体是哪个呢?

2.该怎样reload nginx服务?

一.找到主配置文件

1.1 获取nginx的启动命令

ps -ef | grep nginx中master process后面的就是启动命令

# 情况1:没有指定配置文件和路径前缀(用的默认配置路径)
  启动命令为:/usr/sbin/nginx
[root@vm22 ~]# ps -ef | grep nginx
root      1863     1  0 21:00 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     1864  1863  0 21:00 ?        00:00:00 nginx: worker process
nginx     1865  1863  0 21:00 ?        00:00:00 nginx: worker process

# 情况2:指定了配置文件
  启动命令为:nginx -c /etc/nginx/nginx.conf
  说明: -c 参数用于指定 Nginx 主配置文件的路径。当你想要使用一个非默认位置的配置文件启动 Nginx 时,可以使用这个参数。
[root@vm22 ~]# ps -ef | grep nginx  
root      1703     1  0 20:44 ?        00:00:00 nginx: master process nginx -c /etc/nginx/nginx.conf
nginx     1704  1703  0 20:44 ?        00:00:00 nginx: worker process
nginx     1705  1703  0 20:44 ?        00:00:00 nginx: worker process

# 情况3:指定了路径前缀
  启动命令为:nginx -p /root/nginx-test
  说明:-p 参数用于指定 Nginx 的前缀路径,即 Nginx 配置文件、日志文件和其它相关文件的存放路径。
       主配置文件为:前缀路径/conf/nginx.conf
[root@vm22 ~]# ps -ef | grep nginx       
root      1927     1  0 14:41 ?        00:00:00 nginx: master process nginx -p /root/nginx-test
nobody    1991  1927  0 14:48 ?        00:00:00 nginx: worker process
1.2 获取主配置文件并检查配置文件语法是否正确
语法:启动命令   -t

# 情况1:没有指定配置文件和路径前缀
  启动命令为:/usr/sbin/nginx
  获取主配置文件并检查配置文件语法的命令为: /usr/sbin/nginx  -t
  
# 情况2:指定了配置文件
  启动命令为:nginx -c /etc/nginx/nginx.conf
  获取主配置文件并检查配置文件语法的命令为:nginx -c /etc/nginx/nginx.conf -t
  
# 情况3:指定了路径前缀
  启动命令为:nginx -p /root/nginx-test
  获取主配置文件并检查配置文件语法的命令为:nginx -p /root/nginx-test -t
  
输出结果示例:
nginx: the configuration file /root/openresty-test/conf/nginx.conf syntax is ok
nginx: configuration file /root/openresty-test/conf/nginx.conf test is successful

可从此输出结果中,获取nginx主配置文件的路径,及语法是否正确

二.查看nginx主配置文件都include了哪些子配置文件

grep include 主配置文件,如下实例

[root@vm22 ~]# grep include  /etc/nginx/nginx.conf
include /usr/share/nginx/modules/*.conf;
    include             /etc/nginx/mime.types;
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/default.d/*.conf;
#        include /etc/nginx/default.d/*.conf;  #注意此行前面有注释,需忽略此行
[root@vm22 ~]#

找到主配置文件和子配置文件后,就可以愉快的查看和修改配置文件,愉快的板砖啦!

三.如何reload nginx

3.1 检查配置文件语法是否正确

参考1.2

如果语法有报错,需要先把语法修改正确。

3.2 reload nginx
reload语法:启动命令   -s reload

# 情况1:没有指定配置文件和路径前缀
  启动命令为:/usr/sbin/nginx
  reload的命令为: /usr/sbin/nginx  -s reload
  
# 情况2:指定了配置文件
  启动命令为:nginx -c /etc/nginx/nginx.conf
  reload的命令为:nginx -c /etc/nginx/nginx.conf -s reload
  
# 情况3:指定了路径前缀
  启动命令为:nginx -p /root/nginx-test
  reload的命令为:nginx -p /root/nginx-test -s reload

附加说明:

1.如何启动nginx?
上面的启动命令就是

2.如何stop nginx?
推荐:
systemctl stop nginx

或者(不推荐):

启动命令 -s stop

说明:

stop

是快速停止

或者(推荐):

启动命令 -s quit

说明:

quit

是优雅停止(等待工作进程完成当前请求后停止)

或者(不推荐):

kill nginx的进程

标签: nginx linux 服务器

本文转载自: https://blog.csdn.net/sinat_24354307/article/details/137966993
版权归原作者 yeluomen 所有, 如有侵权,请联系我们删除。

“快速找到nginx用的是哪个配置文件”的评论:

还没有评论