nginx热升级

做web开发和做运维的都知道nginx是一个非常优秀的web服务器和反向代理服务器,它优秀的多进程架构保证其稳定的运行,还为我们提供了热升级功能(不影响客户端请求的处理)。

1. nginx热升级介绍

nginx热升级也就是在不影响客户端请求(服务不中断)的情况下使用新的nginx二进制文件替换老的nginx二进制文件在停掉老的进程。

这种热升级得益于nginx的多进程架构设计,能够在老的nginx主进程不退出的情况下以子进程的方式启动新的master进程和新的woker进程,让新的master进程重新监听端口和接收请求。新的master进程稳定之后,通过发送信号的方式通知老master进程退出。完成整个热升级。

2. nginx热升级流程

2.1 准备新的nginx二进制文件

通过编译得到新的nginx二进制文件,注意为了能够完成升级编译时必须保持和老的nginx配置文件路径、日志路径、pid文件路径等保持一致,否则会导致nginx配置失效!

以下面的我的演示环境为例,目前我的nginx版本以及配置路径如下:

$ ./nginx -v
nginx version: nginx/1.22.0
prefix=/home/geng/nginx

/home/geng/nginx
├── client_body_temp
├── conf
│   ├── nginx.conf
│   └──.......
├── fastcgi_temp
├── html
│   ├── 50x.html
│   └── index.html
├── logs
│   ├── access.log
│   ├── error.log
│   └── nginx.pid
├── proxy_temp 
├── sbin
│   ├── nginx
├── scgi_temp
└── uwsgi_temp 

现在要升级到1.23.1版本,
下载地址http://nginx.org/download/nginx-1.23.1.tar.gz,使用wget工具下载

wget http://nginx.org/download/nginx-1.23.1.tar.gz

解压进入目录执行:

$ ./configure --prefix=/home/geng/nginx
$ make

注意:这里指定的安装路径前缀和老的nginx保持一致!

如果执行make没有报错的话在目录的objs目录下就会生成nginx二进制文件。
至此准备工作已经完成。

2.2 替换老的nginx二进制文件

为了方便对比,当前nginx的版本还是1.22.0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cloud-Future

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值