Nginx启动、停止、重启操作
1,启动nginx。找到自己的nginx安装目录,我的安装目录为/usr/local/webserver/nginx。
[root@CentOS sbin]# /usr/local/webserver/nginx/sbin/nginx
上面代码就是启动nginx。不过一般都在安装nginx时加入开机自动启动。
[root@CentOS sbin]# vi /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local /usr/local/webserver/mysql/bin/mysqld_safe & /usr/local/webserver/php/sbin/php-fpm & /usr/local/webserver/nginx/sbin/nginx &
2,停止nginx服务
首先查找出nginx的主进程号
[root@CentOS sbin]# ps -ef | grep nginx root 5074 1 0 15:29 ? 00:00:00 nginx: master process /usr/local/webserver/nginx/sbin/nginx www 5106 5074 0 15:37 ? 00:00:00 nginx: worker process root 5188 2760 0 16:06 pts/0 00:00:00 grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了,在这里是5047。
然后就可以发送信号了
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx
另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 'cat /usr/local/webserver/nginx/logs/nginx.pid'
3,平滑重启
平滑重启命令:
kill -HUP 主进称号或者kill -HUP 'cat /usr/local/webserver/nginx/logs/nginx.pid'
或者使用/usr/local/webserver/nginx/sbin/nginx -s reload
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/local/webserver/nginx/conf/nginx.conf或者/usr/local/webserver/nginx/sbin/nginx -t
4,nginx的信号控制
TERM或INT 快速关闭。
QUIT 从容停止。
HUP 平滑启动
USR1 重新打开日志文件,主要用在日志切割。
USR2 平滑升级可执行程序,主要用在版本升级。
WINCH 从容关闭工作进程 。
5,nginx的平滑升级
①用新的可执行程序替换老的可执行程序,对于编译安装的nginx可以将新的直接按装到旧的里面,最好备份下
②kill -USR2 旧版本的主进程号。
③旧版本的nginx的主进程命名为.pid.oldbin ,然后执行新版本的nginx可执行程序,依次启动新的主进程和新的工作进程。
④现在新,旧版本的nginx实例会同时运行,共同处理请求。要逐步停止旧版本的nginx,必须发送WINCH 信号给主进程,然后,它的工作进程将开始从容关闭。。
kill -WINCH 旧版本的主进程号。
⑤一段时间后,旧的工作进程(work proess)处理了所有已连接的请求后退出,仅由新的工作进程来处理输入的请求了。
⑥这个时候我们可以选择了
kill -HUP 旧的主进程号: nginx将在不重载配置文件的情况下启动它的工作进程。
kill -QUIT 新的主进程号:从容关闭其工作进程。
kill -TERM 新的主进程号:强制退出。
kill 新的主进程号或者旧的主进程号:会因为某原因新的工作进程不能退出,则向其发送kill信号。
新的主进程号推出后,旧的会移除.oldbin 后缀,恢复他的pid文件,这样,一切都恢复到升级之前了。
如果想尝试升级成功,而切也要保留新的服务器时,可以发送QUIT信号给旧的主进程,使其退出保留下新的服务器运行。