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进程暂时还在处理任务。
自强不息,厚德载物。