1.备份当前Nginx二进制文件
[root@vm1 sbin]# ./nginx -v
Tengine version: Tengine/2.3.2
nginx version: nginx/1.17.3
[root@vm1 sbin]# mv nginx nginx.old
[root@vm1 sbin]# ps -ef|grep nginx|grep -v grep
root 21539 1 0 16:35 ? 00:00:00 nginx: master process ./nginx
nobody 21540 21539 0 16:35 ? 00:00:00 nginx: worker process
2.编译新版本到make后,复制二进制nginx文件
[root@vm1 opt]# tar xvf nginx-1.17.10.tar.gz
[root@vm1 opt]# cd nginx-1.17.10
[root@vm1 nginx-1.17.10]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio
[root@vm1 nginx-1.17.10]# make
[root@vm1 nginx-1.17.10]# cp -f objs/nginx /usr/local/nginx/sbin/
[root@vm1 sbin]# ll
total 12428
-rwxr-xr-x 1 root root 6209808 Mar 10 16:49 nginx
-rwxr-xr-x 1 root root 6508960 Mar 10 16:35 nginx.old
3.kill -USR2 旧版本的主进程号
[root@vm1 sbin]# kill -USR2 21539
4.kill -WINCH 旧版本的主进程号 (关闭旧版本的worker进程)
5.验证是否有问题
6.回退
恢复原来的nginx二进制文件
[root@vm1 sbin]# mv nginx.old nginx
mv: overwrite ‘nginx’? y
kill -HUP 旧版本的进程号 (拉起旧版本的worker进程)
[root@vm1 sbin]# kill -HUP 21539
[root@vm1 sbin]# ps -ef|grep nginx
root 21539 1 0 16:35 ? 00:00:00 nginx: master process ./nginx
root 27319 21539 0 16:58 ? 00:00:00 nginx: master process ./nginx
nobody 27320 27319 0 16:58 ? 00:00:00 nginx: worker process
nobody 28739 21539 0 17:08 ? 00:00:00 nginx: worker process
root 28743 17605 0 17:08 pts/1 00:00:00 grep --color=auto nginx
kill -WINCH 新版本的主进程号 (关闭新版本的worker进程)
如有需要可将新版本master进程杀掉