• Nginx 安装第三方模块 不停机 平滑升级 方法2


    1. 安装步骤略

    可以参考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
    
    • 1

    此时Nginx master 进程号为43619
    在这里插入图片描述

    2. 加载第三方补丁并安装

    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
    
    • 1
    • 2
    • 3
    • 4

    此时Nginx master进程号任然是43619
    在这里插入图片描述
    进程ID可以在nginx.pid中确认
    在这里插入图片描述
    此时/apps/nginx-1.20/sbin/nginx 已经是带有第三方模块了
    在这里插入图片描述

    4. 修改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;
            }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    5. 生成新的master进程

    kill -USR2 `cat /apps/nginx-1.20/logs/nginx.pid`
    
    • 1

    此时Nginx开启一个新的master进程,这个master进程会生成新的worker进程,这就是升级后的Nginx进程,此时老的进程不会自动退出,但是当接收到新的请求不作处理而是交给新的进程处理。
    在这里插入图片描述

    6. 关闭老的worker进程

    kill 43620
    
    • 1

    在这里插入图片描述

    7. 升级失败回滚

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

    7.1 重新拉起老的worker进程

    kill -HUP 43619
    
    • 1

    在这里插入图片描述

    7.2 退出新的master进程

    cat /apps/nginx-1.20/logs/nginx.pid
    kill 46315
    
    • 1
    • 2

    当然也可以合并成一句

    kill `cat /apps/nginx-1.20/logs/nginx.pid`
    
    • 1

    在这里插入图片描述

    7.3 应用程序回退

    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
    
    • 1
    • 2
  • 相关阅读:
    Django 06
    Oracle Primavera Unifier 23.6 新特征
    保温品牌不知道怎么选?中车的选择告诉你
    深入理解 PostgreSQL 中的 MVCC(多版本并发控制)机制
    基础漏洞练习
    trzsz支持文件拖动到终端进行上传,类似lrzsz
    【freertos】010-消息队列概念及其实现细节
    springboot/ssm宠物领养救助平台Java流浪动物救助管理系统web
    每天五分钟机器学习:支持向量机和逻辑回归损失函数的区别和联系
    数据结构—查找方法改进流程
  • 原文地址:https://blog.csdn.net/qq_29974229/article/details/126114618