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信号给旧的主进程,使其退出保留下新的服务器运行。