美文网首页
Linux 升级nginx版本

Linux 升级nginx版本

作者: 我爱钱多多吧 | 来源:发表于2022-03-07 10:37 被阅读0次

    版本说明

    Nginx1.6.2升级到Nginx1.20.2稳定版本

    环境说明

    服务器中最开始使用的是Nginx1.6.2版本,由于这个版本在配置socket-io负载均衡时,仅支持ip_hash,故将当前运行Nginx服务版本升级到最新的稳定版,且在服务不停止的前提下经行升级。

    1. 在不停掉老进程的情况下,启动新进程。

    2. 老进程负责处理仍然没有处理完的请求,但不再接受处理请求。

    3. 新进程接受新请求。

    4. 老进程处理完所有请求,关闭所有连接后,停止。

    操作步骤

    获取nginx的安装目录

    ps-ef|grep nginx|grep master|awk-F" "'{print $11}'

    我的安装目录为/usr/local/webserver/nginx/sbin/nginx

    查看升级之前的nginx版本,同时获取旧nginx版本的编译参数

    /usr/local/webserver/nginx/sbin/nginx -V #注意是大写的V

    输出: nginx version: nginx/1.6.2

    到官网下载1.20.2版本的nginx (下载地址:http://nginx.org/en/download.html)

    解压下载好的文件并上传linux服务器对应的文件夹中,并进入文件夹进行编译(只编译不安装)

    # sudo tar xf nginx-1.20.2.tar.gz 

    # cd nginx-1.20.2/

    # ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35(注意实际安装目录)

    # sudo make

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

    # sudo mv /usr/local/webserver/nginx/sbin/nginx /usr/local/webserver/nginx/sbin/nginx6.old 

    替换旧的Nginx的执行程序

    # sudo cp objs/nginx /usr/local/webserver/nginx/sbin/

    # cd /usr/local/webserver/nginx/sbin/

    # ls

    nginx  nginx6.old   nginx.old

    发送USR2信号给旧版本主进程号,使nginx的旧版本停止接收请求,用nginx新版本接替,且老进程处理完所有请求,关闭所有连接后,停止

    [<u>root</u>sbin]# cd..

    [<u>root</u>nginx]# cd logs/

    [<u>root</u>logs]# ls 

    access.log  error.log  nginx.pid 

    [<u>root</u>logs]# kill-USR2 `cat /usr/local/webserver/nginx/logs/nginx.pid`

    查看nginx pid目录,多了个nginx.pid.oldbin文件,存放了旧版本nginx的pid号

    [root logs]# ls 

    access.log  error.log  nginx.pid  nginx.pid.oldbin

    9、从容关闭旧进程

    [root logs]# kill -QUIT `cat nginx.pid.oldbin`

    [root logs]# ls

    access.log  error.log  nginx.pid  shunjie.access.log

    查看升级后的版本

    [<u>root</u>logs]#/usr/local/webserver/nginx/sbin/nginx -V

    nginx version:nginx/1.20.2

    相关文章

      网友评论

          本文标题:Linux 升级nginx版本

          本文链接:https://www.haomeiwen.com/subject/rwggrrtx.html