可以参考https://blog.csdn.net/qq_29974229/article/details/126114380
1和2
至此nginx已经启动
备份nginx文件
cp /apps/nginx-1.20/sbin/nginx /apps/nginx-1.20/sbin/nginx.bak
此时Nginx master 进程号为43619

patch -p1 < /opt/nginx_upstream_check_module-master/check_1.20.1+.patch
./configure --prefix=/apps/nginx-1.20 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_stub_status_module --add-module=/opt/nginx_upstream_check_module-master
make -j 4
make install
此时Nginx master进程号任然是43619

进程ID可以在nginx.pid中确认

此时/apps/nginx-1.20/sbin/nginx 已经是带有第三方模块了

vi /apps/nginx/conf/conf.d/aa.conf
upstream aaa {
server 192.168.31.17;
server 192.168.31.27;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_http_send "HEAD / HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
server {
listen 192.168.31.67:80;
server_name aa.qiuqin.com 192.168.31.67;
location / {
proxy_pass http://aaa;
}
}
kill -USR2 `cat /apps/nginx-1.20/logs/nginx.pid`
此时Nginx开启一个新的master进程,这个master进程会生成新的worker进程,这就是升级后的Nginx进程,此时老的进程不会自动退出,但是当接收到新的请求不作处理而是交给新的进程处理。

kill 43620

如果升级过程中有问题,退回原版本
kill -HUP 43619

cat /apps/nginx-1.20/logs/nginx.pid
kill 46315
当然也可以合并成一句
kill `cat /apps/nginx-1.20/logs/nginx.pid`

cp /apps/nginx-1.20/sbin/nginx /apps/nginx-1.20/sbin/nginx.bak-20220802
cp /apps/nginx-1.20/sbin/nginx.bak /apps/nginx-1.20/sbin/nginx