Nginx源码安装情况下,如何将Nginx进行平滑升级

171 阅读2分钟

要解决的问题:在不影响nginx正常运行的情况下,平滑升级。

前提:两个版本的nginx源码包,已经安装了其中一个低版本的nginx

nginx源码安装的步骤

  1. 通过 tar -zxf nginx源码安装包

  2. 进入到nginx解压目录下执行下面的配置命令

    ./configure --prefix=/usr/local/nginx
    --sbin-path=/usr/local/nginx/sbin/nginx
    --modules-path=/usr/local/nginx/modules
    --conf-path=/usr/local/nginx/conf/nginx.conf
    --error-log-path=/usr/local/nginx/logs/error.log
    --http-log-path=/usr/local/nginx/logs/access.log
    --pid-path=/usr/local/nginx/logs/nginx.pid
    --lock-path=/usr/local/nginx/logs/nginx.lock

  3. 使用 make && make install 对nginx进行编译和安装。

  4. 通过ps -ef | grep nginx 查看nginx 的pid

  5. 通过kill -9 Nginx的PID 将nginx进行停止

  6. 进入到nginx的安装目录的sbin目录下,通过./nginx 启动nginx

将nginx进行平滑升级的步骤:

  1. 将正在运行的nginx目录下的sbin目录下的nginx进行备份

    cd /usr/local/nginx/sbin
    mv nginx nginxold
    
  2. 将高版本nginx源码包解压,进入解压后的目录中,通过配置指令进行配置,命令如下:

    ./configure --prefix=/usr/local/nginx
    --sbin-path=/usr/local/nginx/sbin/nginx
    --modules-path=/usr/local/nginx/modules
    --conf-path=/usr/local/nginx/conf/nginx.conf
    --error-log-path=/usr/local/nginx/logs/error.log
    --http-log-path=/usr/local/nginx/logs/access.log
    --pid-path=/usr/local/nginx/logs/nginx.pid
    --lock-path=/usr/local/nginx/logs/nginx.lock

    注意:在对低版本nginx升级时,高版本在执行配置命令的时候,配置要与安装低版本nginx 的配置一致。

  3. 执行完配置命令,在高版本nginx安装目录下执行make命令进行编译,然后将编译后生成的objs目录下的nginx复制到低版本nginx安装目录下的sbin目录中

    make 
    cd objs
    cp nginx /usr/local/nginx/sbin/
    
  4. 回到高版本nginx安装目录下,执行make upgrade 即可实现平滑升级。