• nginx虚拟机及热部署(在线升级)


    实现热部署(在线升级):
    热部署方案一 (有弊端,不利于回滚)
    查看nginx版本及源编译差数:
    /usr/local/nginx/sbin/nginx -V

    预编译/ 编译/ 安装:在预编译之前,先删除之前生成的Makefile文件,保存干净 也可不删除:
    cd nginx-1.16.0
    make clean
    echo-nginx-module-0.61.tar.gz (需手动上传)
    mv /usr/src/echo-nginx-module-0.61.tar.gz /usr/src/echo-nginx-module
    预编译-添加echo-nginx-module模块(添加前模块需要和之前的一致)
    ./configure --prefix=/usr/local/nginx --with-http_stub——status_module --with-http_ssl_module --add-module=/usr/src/echo-nginx-module
    编译 安装
    make &&make install
    /usr/local/nginx/sbin/nginx -V
    进行升级
    make upgrade

    热部署方案二 (更谨慎的操作,随时可回滚):
    查看原版本参数及编译安装均与热部署一相同
    /usr/local/nginx/sbin/nginx -V
    cd /usr/src/nginx-1.16.0
    删除之前Makefile文件
    make clean
    进行预编译
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../echo-nginx-module
    编译/ 安装
    make && make install

    启动nginx服务/查看进程:

    /usr/local/nginx/sbin/nginx 
    ps -ef|grep nginx
    查看nginx.pid master老进程
    cat /usr/local/nginx/logs/nginx.pid
    向master进程xxxxx(进程id) 请求 生成新的进程
    kill -USR2 xxxxx

    优雅退出老master进程

    向老master进程发信号 xxxxx优雅退出, 新master进程xxxxx起来:
    kill -WINCH xxxxx
    ps -ef|grep nginx

    快泽/回滚:

    重新拉起老master进程:
    kill -HUP xxxxx
    退出新的master进行:
    kill -QUIT xxxxx

    热部署三:
    下载源码包:
    wget http://www.nginx.org/download/nginx-1.14.2.tar.gz
    获取旧版本号
    /usr/local/nginx/sbin/nginx -V
    解压 编译新版本的nginx 与旧版本的参数相同,不加上旧版本的参数,旧的版本参数不可用:

    tar xf nginx-1.14.2.tar/gz
    cd nginx-1.14.2
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
    编译/ 安装  (这里我选择编译不安装)
    make
    下图是编译安装自动生成的文件 效果
    备份旧版本的nginx可执行文件, 复制新版本的nginx执行文件 (默认编译安装时已复制过去, 如果没有编译安装 自己手动复制)

    mv /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/nginx.old
    cp objs/nginx  /usr/local/nginx/sbin/nginx
    /usr/local/nginx/sbin/nginx -v
    /usr/local/nginx/sbin/nginx.old -v

     

     

    平滑重启动测试:

    /usr/local/nginx/sbin/nginx -s reload
    /usr/local/nginx/sbin/nginx -v

     

  • 相关阅读:
    SQL Server 跨服务器 存储过程传字符串数组不同数据库之间复制表的数据
    SQL Server 跨服务器 存储过程不同数据库之间复制表的数据
    SQL Server 跨服务器 存储过程不同数据库之间复制表的数据
    SQL Server跨服务器查询
    抓包自定义过滤器需加%XXXX%,如%third_play%
    svn 清理命令失败
    通过windug判断某个模块导致程序不能退出。
    如果判断不出是不是某个模块出的问题,删除此模块测试。
    读配置前把vector清掉
    DNS服务器的原理
  • 原文地址:https://www.cnblogs.com/fengyuanfei/p/13798933.html
Copyright © 2020-2023  润新知