zoukankan      html  css  js  c++  java
  • 平滑升级nginx

    #!/bin/bash
    apt-get install libpcre3 libpcre3-dev openssl libssl-dev zlib1g-dev -y
    nginx -V 2>/tmp/nginx_configuration.txt
    nginx_make_parameter=`grep argument /tmp/nginx_configuration.txt |awk -F: '{print $2}'`
    cd /usr/local/src/
    wget http://nginx.org/download/nginx-1.14.0.tar.gz
    tar -zxvf nginx-1.14.0.tar.gz
    cd nginx-1.14.0
    echo $nginx_make_parameter |xargs ./configure
    make
    mv /usr/sbin/nginx /usr/sbin/nginx.bak
    cp ./objs/nginx /usr/sbin/nginx

    当Nginx服务升级到新版本时,必须要将旧的二进制文件Nginx替换掉,通常情况下这是需要重启服务的,但Nginx支持重启服务来完成新版本的平滑升级。

    升级时包括以下步骤:

    1)通知正在运行的旧版本Nginx准备升级。通过向master进程发送 USR2 信号可达到目的。例如

    kill -s SIGUSR2 <nginx master pid>

    等于

    kill  -USR2 <nginx master pid>

    这时,运行中的Nginx会将pid文件重命名,如将/var/run/nginx.pid重命名为/var/run/nginx.pid.oldbin,这样新的Nginx才有可能启动成功。

    2)启动新的Nginx,这时通过ps命令可以发现新旧版本的Nginx在同时运行。

    3)通过kill命令向旧版本的master进程发送SIGQUIT信号,以“优雅”的方式关闭旧版本的Nginx。随后将只有新版本的Nginx服务运行,此时平滑升级完毕。

    kill   -QUIT `cat /var/run/nginx.pid.oldbin`

    ps: 第一次编译装,非平滑编译的参数 (和apt安装的一样)

    --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

    make && make install

  • 相关阅读:
    gcc相关
    test
    第二次课
    VS快捷键
    第7章 站在对象模型的尖端
    第6章 执行期语意学
    第5章 构造, 析构, 拷贝语意学
    第4章 Function语意学
    第一次课
    第3章 Data语意学
  • 原文地址:https://www.cnblogs.com/xingxiz/p/9789722.html
Copyright © 2011-2022 走看看