Nginx 平滑升级

来自Linux78|wiki
Bob讨论 | 贡献2019年11月15日 (五) 17:29的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

/usr/local/nginx/sbin/nginx -V #注意是大写的V

下载新版本解压下载好的文件,并进入文件夹进行编译(只编译不安装)

.configure ..
make

备份旧版本的nginx的执行程序

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
```替换旧的Nginx的执行程序
```shell
 cp objs/nginx /usr/local/nginx/sbin/
cd /usr/local/nginx/sbin/
ls
nginx  nginx.old  nginx.old

发送USR2信号给旧版本主进程号,使nginx的旧版本停止接收请求,用nginx新版本接替,且老进程处理完所有请求,关闭所有连接后,停止

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

查看nginx pid目录,多了个nginx.pid.oldbin文件,存放了旧版本nginx的pid号

ls
nginx.pid  nginx.pid.oldbin

查看服务运行状态

netstat -aupt | grep nginx
tcp        0      0 *:http                      *:*                         LISTEN      793/nginx

从容关闭旧进程

kill -QUIT `cat nginx.pid.oldbin`
ls
access.log  error.log  nginx.pid