煮酒听雨
首页
PHP
MYSQL
WEB
Linux
关于本站
登陆
注册
Nginx启动、重启、停止和重载配置文件
编辑时间:2018-05-14
编辑:忘尘
阅读:648
### Nginx的启动、停止、重启和重载 常用命令参数: -c filename:设置配置文件。 -t :不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。 -s :传递一个信号,stop快速关闭,quit从容关闭,reopen重新打开日志文件、用于切换日志文件,reload重载配置文件。 -v :显示nginx的版本。 -V:显示nginx的版本,编译器版本和配置参数 #### 启动nginx 格式:nginx安装目录地址 -c nginx配置文件地址 - 传统启动: ```linux [root@izbp10njz4i1cqmwgzzfmez sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ``` - service启动 ```linux [root@izbp10njz4i1cqmwgzzfmez sbin]# service nginx start Starting nginx... done ``` ------------ <br /> #### 停止或关闭 (快速关闭、强制停止、优雅关闭) ##### 1. 快速关闭 - nginx -s stop ```linux [root@izbp10njz4i1cqmwgzzfmez sbin]# pwd /usr/local/nginx/sbin [root@izbp10njz4i1cqmwgzzfmez sbin]# ./nginx -s stop ``` - kill -TERM 主进程号 ```linux [root@izbp10njz4i1cqmwgzzfmez ~]# ps -ef |grep nginx|grep master root 7197 1 0 12:08 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf [root@izbp10njz4i1cqmwgzzfmez ~]# kill -TERM 7197 [root@izbp10njz4i1cqmwgzzfmez sbin]# service nginx status nginx is stopped. ``` - kill -INT 主进程号 ```linux [root@izbp10njz4i1cqmwgzzfmez sbin]# ps -ef|grep nginx root 8502 1 0 14:07 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf www 8503 8502 0 14:07 ? 00:00:00 nginx: worker process root 8505 7549 0 14:07 pts/3 00:00:00 grep --color=auto nginx [root@izbp10njz4i1cqmwgzzfmez sbin]# kill -INT 8502 [root@izbp10njz4i1cqmwgzzfmez sbin]# service nginx status nginx is stopped. ``` #####2. 优雅关闭(不接受新的连接请求,等待旧的连接请求处理完毕再关闭,正常停止或关闭推荐使用这该方式) - nginx -s quit ```linux [root@izbp10njz4i1cqmwgzzfmez sbin]# nginx -s quit [root@izbp10njz4i1cqmwgzzfmez sbin]# service nginx status nginx is stopped. ``` - kill -QUIT 主进程号 ```linux [root@izbp10njz4i1cqmwgzzfmez sbin]# ps aux|grep nginx|grep master root 8601 0.0 0.1 24260 1648 ? Ss 14:18 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf [root@izbp10njz4i1cqmwgzzfmez sbin]# kill -QUIT 8601 [root@izbp10njz4i1cqmwgzzfmez sbin]# service nginx status nginx is stopped. ``` ##### 3. 强制停止 ```linux [root@izbp10njz4i1cqmwgzzfmez sbin]# pkill -9 nginx [root@izbp10njz4i1cqmwgzzfmez sbin]# service nginx status nginx is stopped. ``` ------------ <br /> #### 重启restart (stop&start) - service nginx restart ```linux [root@izbp10njz4i1cqmwgzzfmez sbin]# service nginx restart Stoping nginx... done Starting nginx... done ``` ------------ <br /> #### 重载reload(配置文件修改重装载,nginx配置平滑更新) 为了让主进程重新读取配置文件,应该向主进程发送一个HUP信号,主进程一旦接收到重新加载配置的的信号,它就检查配置文件语法的有效性,然后试图应用新的配置,即打开新的日志文件和新的socket 监听,如果失败,它将回滚配置更改并继续使用旧的配置,如果成功了,它开启新的工作进程,并给旧的工作进程发消息让它们优雅的关闭,旧的工作进程接收到关闭信号后,不再接收新的请求,如果已有请求正在处理,等当前请求处理完毕后关闭,如果没有请求正在处理,则直接关闭。即reload会重新加载配置文件,nginx服务不会中断,而且reload时会测试conf语法等,如果出错会rollback用上一次正确配置文件保持正常运行。 - nginx -s reload ```linux [root@izbp10njz4i1cqmwgzzfmez sbin]# ./nginx -s reload [root@izbp10njz4i1cqmwgzzfmez sbin]# service nginx status nginx (pid 8814 8765) is running... ``` - kill -HUP 主进程号 ```linux [root@izbp10njz4i1cqmwgzzfmez sbin]# ps -aux|grep nginx root 8765 0.0 0.3 25728 3420 ? Ss 14:34 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf www 8814 0.0 3.0 52864 30512 ? S 14:49 0:00 nginx: worker process root 8866 0.0 0.0 112664 972 pts/3 R+ 14:53 0:00 grep --color=auto nginx [root@izbp10njz4i1cqmwgzzfmez sbin]# kill -HUP 8765 [root@izbp10njz4i1cqmwgzzfmez sbin]# service nginx status nginx (pid 8814 8765) is running... ``` ##### 重载与重启的区别 reload,重新加载的意思,reload会重新加载配置文件,nginx服务不会中断,而且reload时会测试conf语法等,如果出错会rollback用上一次正确配置文件保持正常运行。 restart,重启,会重启nginx服务。这个重启会造成服务一瞬间的中断,当然如果配置文件出错会导致服务启动失败,那就是更长时间的服务中断了。 ------------ 查看nginx版本信息: nginx -v 查看nginx版本信息,编译版本,和配置参数:nginx -V 检查配置文件语法是否正确:nginx -t ,如果要对指定配置文件进行语法检查,可以继续添加 -c 参数 ```linux [root@izbp10njz4i1cqmwgzzfmez ~]# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful ``` ------------ #### 配置开机自启动 方法一: 在/etc/rc.local中配置 方法二: 使用<a href="https://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html" target="_blank">chkconfig</a>命令添加至服务管理列表,并让其开机自动启动 ------------ #### <a href="http://man.linuxde.net/kill" target="_blank" >kill</a>命令进程相关 nginx的进程分为主进程和工作进程,关于nginx的信号,主进程支持以下信号: - TERM,INT 快速关闭 - QUIT 优雅的关闭 - KILL 关闭一个顽固进程 - HUP 改变配置,使用新配置开启新的工作进程,优雅的关闭旧的进程 - USR1 重新开启日志文件 - USR2 平滑升级nginx - WINCH 优雅的关闭工作进程 单个工作进程也可以通过信号控制,但它不是必须的。单个工作进程支持的信号有: - TERM,INT 快速关闭 - QUIT 优雅的关闭 - USR1 重新开启日志文件 - WINCH 异常终止调试(需要启动debug_points) ------------ 参考文档 http://www.nginx.cn/nginxchscommandline
来说两句吧
提交评论
最新评论
我的标签
函数
面试
REDIS
LNMP
验证
时间
JS
LINUX
CPA
常量
MYSQL
备份
微信
文件
压缩
优化
SVN
PHP
集合
数组
HTML
收藏
NGINX
配置
日志
性能
加密
下载
FORM
WEB
样式
SQL
表单
配置,面试,REDIS
编码
ARRAY
替换
截取
密码
版本
进程
定时
测试
事务
数据
权限
安全
防火墙
索引
设计模式
安全,面试
缓存
热文排行
LNMP状态管理命令
navicat for mysql 导入xlsx,
(置顶)开发中常用功能知识点笔记
(置顶)收藏优秀分享文章集合
PHP加密解密算法(Discuz!经典代码)
PHP 获取数组第一个元素或最后一个值
Nginx配置 nginx.conf 文件中常用配
MySQL错误日志 [Warning] IP ad
Redis持久化:快照(RDB)和AOF简解
浅析SQLmap
随机文章
友情链接
官方手册
thinkphp
php扩展
Linux命令
lnmp
PHP中文网
鸟哥Linux私房
Nginx中文文档
json格式化
Redis手册
composer中文文档
CentOS下载
流程图
VPN代理
菜鸟网
奇淼教程
首页
PHP
MYSQL
WEB
Linux
关于本站
登陆
注册