欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-31 23:23:22
...


1、介绍

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

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

2、nginx配置负载均衡

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;
 }

3、启动nginx

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

4、测试日志

启动3002端口:
灰度发布 通过 nginx + 负载均衡实现

启动3022端口:
灰度发布 通过 nginx + 负载均衡实现

启动3002、3022端口:
灰度发布 通过 nginx + 负载均衡实现

5、备注

1、nginx负载均衡没有怎么深入研究,如果放置生产,需考虑一下
2、upstream 在server外面
3、由于没有实际配置生产,还望各位在参考时可以提出意见我做修改



提供一个群:807770565,欢迎各位进来尬聊
灰度发布 通过 nginx + 负载均衡实现