nginx的管理和升级

1.平滑启动nginx

kill -HUP `cat /var/run/nginx.pid`

或者

nginx -s reload

平滑启动的意思是在不停止nginx的情况下,重启nginx,重新加载配置文件,启动新的工作线程,完美停止旧的工作线程。

2.平滑停止nginx

kill -QUIT `cat /var/run/nginx.pid`

3.快速停止nginx

kil -TERM `cat /var/run/nginx.pid`

或者

kill -INt `cat /var/run/nginx.pid`

4.完美停止工作进程(主要用于平滑升级)

kill -WINCH `cat /var/run/nginx.pid`

5.强制停止nginx

pkill -9 nginx

检查nginx.conf文件的配置是否正确

nginx -t

6.停止nginx

nginx -s stop

或者

pkill nginx

7.查看nginx版本

nginx -v 
nginx -V	# 查看编译参数

8.升级nginx

make过后不需要执行make install

1).备份nginx

注意:先备份旧版本的nginx可执行文件,再复制新版本的nginx可执行文件。

旧版nginx

nginx -v
nginx version: nginx/1.14.2

新版nginx

nginx -v
nginx version: nginx/1.16.1
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cp objs/nginx /usr/local/nginx/sbin/

2).测试新版本nginx是否正常

/usr/local/nginx/sbin/nginx -t

3).平滑重启升级nginx

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

旧版本nginx的pid变为oldbin,这时旧版本和新版本的nginx同时运行,过一段时间等旧nginx处理完用户请求后,执行下面操作从容关闭旧版本的nginx进程。

可以看到有两个nginx master 进程

ps -ef | grep nginx
root      32586      1  0 21:09 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     32587  32586  0 21:09 ?        00:00:00 nginx: worker process
root      32600  32586  0 21:11 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     32601  32600  0 21:11 ?        00:00:00 nginx: worker process
kill -WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin`

决定是否升级到新版的nginx

kill -HUP `cat /usr/local/nginx/logs/nginx.pid.oldbin`
# nginx在不重载配置文件启动工作进程
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
# 关闭旧版nginx

可以看到旧版的nginx管理进程已经关闭

ps -ef | grep nginx
root      32600      1  0 21:11 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     32601  32600  0 21:11 ?        00:00:00 nginx: worker process
nginx     32609      1  0 21:16 ?        00:00:00 nginx: worker process

只有旧版nginx worker进程暂时还在处理任务。

posted @ 2020-03-10 23:04  aitansi  阅读(107)  评论(0编辑  收藏  举报