nginx的升级与反向代理

目录

一、nginx的平滑升级与回退

1.nginx的平滑升级

2.版本回退

二、nginx反向代理

三、负载均衡

1.weight

2.ip_hash

3.down、备用机backup

4.sticky算法



一、nginx的平滑升级与回退

nginx 支持热加载、热部署 ,在不关闭服务的情况下更新版本,不影响用户访问。nginx 采用了高度模块化的设计思路,并且内部的进程主要有两类,master 进程 和 worker 进程。其中 master 进程只有一个,worker 进程可以有多个。worker 进程才是真正 working 的进程,才是真正处理请求的进程。worker 进程全部都是 master 进程的子进程。

我们以server1上1.20.1版本的nginx为例来说明:

1.nginx的平滑升级

下载1.21.1版本的nginx压缩包,并解压

切到新版本目录,生成编译文件(注意要和已安装的旧版本参数一致),make编译

注意:此处不需要make install

cd nginx-1.21.1/
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-file-aio
make

切到安装目录,备份旧版本的二进制文件

cd /usr/local/nginx/sbin/
cp nginx nginx.old -f

切到新版本的objs/目录,用新版本的二进制执行文件替换旧版本的二进制执行文件,要加 -f 否则报错正忙

cd /root/nginx-1.21.1/objs/
cp -f nginx /usr/local/nginx/sbin/nginx

查看nginx的进程,给旧版本的master进程发送USR2信号,使之不接受任何请求,并平滑升级。再次查看进程,发现出现两个master进程,给旧版本的master进程发送WINCH信号,使旧版本的worker进程关闭。此时以升级成功,我们可以杀掉旧版本的master进程。当然也可以不杀掉,以免新版本不稳定方便我们回退版本。

ps ax | grep nginx
kill -USR2 旧版本master进程id     ##进行热部署
ps ax | grep nginx
kill -WINCH 旧版本master进程id    ##关闭旧版本的worker进程,保留master进程

2.版本回退

如果新版本不为稳定,我们可以进行版本回退,思路与升级相反。

先将二进制文件复原为旧版本。查看进程,给旧版本的master进程发送HUP信号,唤醒旧版本的worker进程。再给新版本的ma

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值