zoukankan      html  css  js  c++  java
  • 不停服务情况下升级nginx

    第三方支付平台因安全问题对nginx做了升级操作,为了不影响业务,整个操作过程都不能停服务,因此对升级方法做出了要求。以下为我整理的生产环境实际操作方法,已在第三方支付平台上成功应用,希望对即将或者可能涉及nginx升级操作的同事有所帮助。

    Nginx升级步骤:

    步骤一:查看原版本及已安装模块和进程号。

    ps aux|grep nginx

    /payment/nginx/sbin/nginx –V

    步骤二:下载新版本安装文件并上传到nginx主机目录/payment/bak/。

    下载地址http://nginx.org/download/nginx-1.4.3.tar.gz

    步骤三:备份旧版本的执行程序。

    tar -cvf /payment/bak/nginx.sbin.20140115.tar /payment/nginx/sbin/

    步骤四:编译新版本,增删模块。

    tar zxvf /payment/bak/nginx-1.4.3.tar.gz

    cd /payment/bak/nginx-1.4.3

    ./configure --prefix=/payment/nginx

    make

    make install

    步骤五:替换。

    kill -USR2 21727

    ll /payment/nginx/logs/nginx*

    ps aux|grep nginx

    kill -WINCH 21727

    一段时间之后,旧的工作进程(worker process)处理了所有已连击的请求后推出,仅由新的工作进程(worker process)来处理请求了。

    步骤六:决定使用新版本还是恢复到旧版本。

    使用新版本:kill -QUIT 21727

    新的主进程退出后,旧的主进程会移除.oldbin后缀,恢复为他的.pid文件,这样,一切就都恢复为升级之前了。 如果尝试升级成功,而自己又希望保留新版本时,可发送QUIT信号给旧的主进程,使其退出而只留下新的进程运行:kill -QUIT 旧主进程号。

    为了能够更加安全,往往采用隐藏软件版本号的方法,此处插入步骤七,对版本号进行隐藏。

    步骤七:备份配置文件并隐藏版本号

    (1)备份:tar -cvf /payment/bak/nginx.conf.20140115.tar /payment/nginx/conf/

    (2)vi /payment/nginx/conf/nginx.conf

    http中加入:

    server_tokens off;

    vi /payment/nginx/conf/fastcgi.conf

    修改:

    fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

    fastcgi_param  SERVER_SOFTWARE    nginx;

    (3)重新加载配置文件。

    ./nginx -s reload

    验证:curl --head 127.0.0.1

  • 相关阅读:
    idea输出目录详解
    svn的使用教程
    java常用技术名词解析
    1.0 idea使用教程(配置)一
    fastDFS的搭建
    log4j的配置
    关于elementUI中上传组件点击上传时页面卡死的问题
    Nginx的反向代理
    给所有实体类重写tostring方法
    Nginx的配置
  • 原文地址:https://www.cnblogs.com/sayou/p/3711918.html
Copyright © 2011-2022 走看看