平滑升级
所谓平滑升级,就是在不影响当前程序运行的情况下,对Nginx版本进行升级、添加/删除服务器模块
具体做法如下:
1、下载新版本
2、执行make
3、对旧版本的 nginx 命令进行copy备份 如:cp nginx nginx_version
4、使用新版本的nginx命令去覆盖旧版本的nginx
cp -rfp nginx(new) old_nginx_path
5、sudo kill -USR2 旧版本的Nginx主进程号
旧版本Nginx的主进程将重命名它的pid文件为.oldbin ,然后执行新的程序
6、sudo nginx -c /usr/local/nginx/nginx.conf
启动新的nginx
此时新旧版本的Nginx实例会同时运行,共同处理请求
7、sudo kill -WINCH 旧版本Nginx主进程号
从容停止旧版本Nginx的工作进程
8、过了一会儿,旧工作进程处理完了已连接的请求,自己会退出,由新的工作进程来处理新的请求
9、由我们自己判断是继续使用新的工作进程,还是恢复到旧版本
恢复旧版本:
sudo kill -HUP 旧的主进程号 Nginx将在不重载配置文件的情况下启动它的工作进程
sudo kill -QUIT 新的主进程号 从容关闭其工作进程
sudo kill -TERM 新的主进程号 强制退出
如果还是无法关闭新开启的进程,则直接使用kill命令
新的主进程退出后,旧的进程会移除 .oldbin 前缀,恢复为.pid文件,至此,一切又回到了升级前的模样
如果希望留下新的服务器,可以发送QUIT信号给旧的主进程,使其退出
sudo kill -QUIT 旧的主进程号