zoukankan      html  css  js  c++  java
  • [Linux]-Nginx平滑升级

    环境说明

    当前服务器中正在运行Nginx服务,现想将当前运行的Nginx服务的版本经行升级,(从1.6升级到1.8,版本的跨度不要太大,容易造成服务的崩溃),且在服务不停止的前提下经行升级。

      1. 在不停掉老进程的情况下,启动新进程。
      2. 老进程负责处理仍然没有处理完的请求,但不再接受处理请求。
      3. 新进程接受新请求。
      4. 老进程处理完所有请求,关闭所有连接后,停止。

    实现步骤

    1. 编译安装nginx-1.6

    yum -y install pcre-devel zlib-devel    #安装依赖包
    useradd -M -s /sbin/nologin nginx    #添加程序运行用户
    tar -zxvf nginx-1.6.0.tar.gz -C /usr/src/    #解包
    cd /usr/src/nginx-1.6.0/
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install    #配置编译并且安装
    /usr/local/nginx/sbin/nginx        #启动nginx服务                

    2. 编译nginx-1.8(只编译不安装)

    tar -zxvf nginx-1.8.1.tar.gz -C /usr/src/    #解包
    cd /usr/src/nginx-1.8.1/
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make    #配置编译并且安装

    3. 查看升级之前的版本

    #/usr/local/nginx/sbin/nginx -v
    nginx version: nginx/1.6.0

    4.  备份旧版本的nginx的执行程序

    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

    5. 替换旧的Nginx的执行程序

    cp /usr/src/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/

    6. 使nginx的旧版本停止就收请求,有Nginx新版本接替,且老进程处理完所有请求,关闭所有连接后,停止

    kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

    7. 查看nginx日志目录会生成一个nginx.pid.oldbin文件,存放旧版本nginx 的pid号

    #ls /usr/local/nginx/logs/
    access.log  error.log  nginx.pid  nginx.pid.oldbin

    8.查看升级升级后的版本

    #/usr/local/nginx/sbin/nginx -v
    nginx version: nginx/1.8.1

    9. 查看服务运行状态

    netstat -aupt | grep nginx
    getnameinfo failed
    tcp        0      0 *:http                      *:*                         LISTEN      6963/nginx 

    10. 使用客户端验证Nginx服务是否可以继续访问

  • 相关阅读:
    交换机的配置文件和系统映像文件备份与恢复(如果不小心损坏了,可以用这种方法恢复)
    交换机端口安全配置
    路由器密码重置(不是适用于所有有些启动顺序数字不一样)
    交换机的默认网关(跨网段telnet)
    思科交换机的初始配置(使用telnet登录)
    Linux命令集(第一部分共40个)
    Linux6.9安装
    javamail邮件发送报错解决方案
    isEmpty()与equals()、==“”区别
    eclipse svn 修改了类名之后提交
  • 原文地址:https://www.cnblogs.com/chenwz/p/7622983.html
Copyright © 2011-2022 走看看