背景
在工作中会碰到一台服务器安装了多个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的进程
版权归原作者 yeluomen 所有, 如有侵权,请联系我们删除。