步骤1:查询nginx主进程号
|
|
在进程列表里面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
|
|
|
|
另外,若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
|
|
平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx发送信号,平滑重启。
平滑重启命令:
|
|
或
|
|
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
|
|
当nginx接收到HUP信号时,它会尝试先解析配置文件(如果指定文件,就使用指定的,否则使用默认的),如果成功,就应用新的配置文件(例如:重新打开日志文件或监听的套接字),之后,nginx运行新的工作进程并从容关闭旧的工作进程,通知工作进程关闭监听套接字,但是继续为当前连接的客户提供服务,所有客户端的服务完成后,旧的工作进程就关闭,如果新的配置文件应用失败,nginx再继续使用早的配置进行工作。
补充内容:nginx的几种信号
|
|
平滑升级
Nginx方便地帮助我们实现了平滑升级。其原理简单概括,就是:
|
|
平滑升级命令:
|
|
然后make,千万别make install
make完了 在objs目录下就多了个nginx,这个就是新版本的程序了
备份原nginx文件
|
|
将新生成nginx执行文件复制到nginx/sbin下
|
|
检测配置文件是否正确
|
|
执行升级
|
|
执行完后
|
|
到此就完成平滑升级。