zoukankan      html  css  js  c++  java
  • nginx 平滑升级到Tengine并编译concat

    1、到http://tengine.taobao.org/下载最新的Tengine

    2、编译 Tengine,我习惯修改下显示的版本号,修改源码中的 src/core/nginx.h 文件命令:./configure;make

    3、

    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
    cp -r objs/nginx /usr/local/nginx/sbin/nginx
    cp -r objs/dso_tool /usr/local/nginx/sbin/dso_tool 

    4、/usr/local/nginx/sbin/nginx -t(检测)

    5、service nginx restart(需重启)

    5、进行不重启平滑升级,先发送平滑升级的信号

    此时主进程的 pid 文件会改名为 .pid.oldbin ,并启动新的主进程和工作进程,查询进程

    会发现同时存在2主进程和多个工作进程,即新老版本同时工作,此时对旧版本发送从容关闭工作进程的信号。

    6、旧版本在处理完手头上的工作就会慢慢“退休”,此时再次查询进程会发现旧版本只有1个主进程存在了,最后发送从容关闭的信号给他。

    7、完成,可以用 curl -I 目标 来查看头部验证是否升级成功。

    扩展:

    1)编译concat

    • 配置

      ./configure [--with-http_concat_module | --with-http_concat_module=shared]

      --with-http_concat_module选项,concat模块将被静态编译到tengine中

      --with-http_concat_module=shared,concat模块将被编译成动态文件,采用动态模块的方式添加到tengine中

    • 关于tengine的dso动态加载的配置可以参考官方的文档http://tengine.taobao.org/document_cn/dso_cn.html
    • 如果是-with-http_concat_module=shared的话,会在tengine的modules目录里生成一个.so文件,需要在nginx的nginx.conf配置文件里加入
    • dso{
      
          load 你的so文件;
      
      }
      然后执行./nginx -s reload 重新加载一下配置文件就行。
  • 相关阅读:
    ubuntu install gobgp
    ubunut install golang
    Using GoBGP as an IXP connecting router
    400 行 C 代码实现一个虚拟机
    IPv6 Segment Routing (SRv6)
    How to Install VPP in ubuntu x86 or arm64
    mpls + sr + bgp
    ospf sr
    520了,用32做个简单的小程序
    FPGA设计经验总结
  • 原文地址:https://www.cnblogs.com/zhangwenzhao/p/3185931.html
Copyright © 2011-2022 走看看