nginx的负载均衡机制实现用户无感更新服务
参考网址:
https://blog.yuqiyu.com/use-nginx-loadbalance-upgrade-service.html
说明
demo 案例参考网址即可
本文只记录重要的 nginx 配置和流程
nginx 重要配置
配置upstream
# 负载配置
upstream test {
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:9090 weight=2;
server 127.0.0.1:9000 backup;
}
配置location
# 配置"/lb/"路径的请求全部转发到本地8080端口
location /lb/ {
proxy_pass http://test/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 50;
proxy_read_timeout 50;
proxy_send_timeout 50;
}
在nginx中有一个权重的概念,根据权重值的大小来控制请求流量,当权重的配值越大时,流量分发就会越多,我们在test服务器组内配置权重解释:
server 127.0.0.1:8080 weight 1; 权重占比为1/3,每3次请求会转发1次到这台服务器上。
server 127.0.0.1:9090 weight 2; 权重占比为2/3,每3次请求会转发2次到这台服务器上。
当我们在upstream内的server尾部添加backup时,表示这台服务器是备用服务器,只有其他服务器都停机时才会启用,我们更新时其实就利用的这一点。