美文网首页
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