操作步骤如下
1、下载升级包
2、备份
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak
3、编译
./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_perl_module make #注意不要make install 否则会覆盖原有配置文件
4、执行升级命令
kill -USR2 pid #旧版程序的主进程号或进程文件名 此时旧的Nginx主进程将会把自己的进程文件改名为.oldbin,然后执行新版 Nginx。新旧Nginx会同时运行,共同处理请求。
5、让旧的进程退出
kill -WINCH 旧版主进程号,这时要逐步停止旧版 Nginx,慢慢旧的工作进程就都会随着任务执行完毕而退出,新版的Nginx的工作进程会逐渐取代旧版 工作进程。
说明
通过kill -USR2 pid 可以实现nginx 平滑升级,无需停止服务,在线升级。升级过程中新旧进程同时处理请求,待旧的请求没有的时候再执行退出旧的进程的命令kill -WINCH