天天看点

灰度发布 通过 nginx + 负载均衡实现

文章目录

  • 1、介绍
  • 2、nginx配置负载均衡
  • 3、启动nginx
  • 4、测试日志
  • 5、备注

1、介绍

服务器:1台

服务:一个

端口:三个(一个对外接口(80),两个内部服务接口(3002, 3022))

nginx:一份

思路:配置负载,不管我们后端服务有没有启动,nginx是可以正常启动的。那么我可以认为nginx目前在监听的端口有两个3002和3022,那么如果我们3002服务挂了,那么这个时候nginx是将我们的请求转发到3022上面。那么我们在更新后台服务的时候,只需要启动另外一个端口成功后,在将开始的一个端口关闭掉就可以让用户无感更新,后台使用运行一个项目,更新内外一个端口,停掉开始的

灰度发布 通过 nginx + 负载均衡实现

2、nginx配置负载均衡

Nginx目前支持6种方式的负载均衡策略:

轮询(默认方式)

weight(权重方式)

ip_hash(依据ip分配方式)

least_conn(最少连接方式)

fair(第三方提供的响应时间方式)

url_hash(第三方通过的依据URL分配方式)

server {
    listen 80;
    server_name  111.11.111.21;

    location / {
        proxy_set_header  Host  $http_host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass  http://real_server;
   }
}

// 权重
upstream real_server {
       server 127.0.0.1:3002 weight=1;  #轮询服务器和访问权重
       server 127.0.0.1:3022 weight=2;
 }
 
// 最少连接方式,把请求发给链接数最少的后端服务器
//upstream real_server {
//  least_conn;
//  server [IP地址]:[端口号] weight=2;
//  server [IP地址]:[端口号];
//}
           

3、启动nginx

参考下一遍文章:docker部署nginx

4、测试日志

启动3002端口:

灰度发布 通过 nginx + 负载均衡实现

启动3022端口:

灰度发布 通过 nginx + 负载均衡实现

启动3002、3022端口:

灰度发布 通过 nginx + 负载均衡实现

继续阅读