灰度发布 通过 nginx + 负载均衡实现
程序员文章站
2024-01-31 23:23:22
...
文章目录
1、介绍
服务器:1台
服务:一个
端口:三个(一个对外接口(80),两个内部服务接口(3002, 3022))
nginx:一份
思路:配置负载,不管我们后端服务有没有启动,nginx是可以正常启动的。那么我可以认为nginx目前在监听的端口有两个3002和3022,那么如果我们3002服务挂了,那么这个时候nginx是将我们的请求转发到3022上面。那么我们在更新后台服务的时候,只需要启动另外一个端口成功后,在将开始的一个端口关闭掉就可以让用户无感更新,后台使用运行一个项目,更新内外一个端口,停掉开始的
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端口:
启动3022端口:
启动3002、3022端口:
5、备注
1、nginx负载均衡没有怎么深入研究,如果放置生产,需考虑一下
2、upstream 在server外面
3、由于没有实际配置生产,还望各位在参考时可以提出意见我做修改
提供一个群:807770565,欢迎各位进来尬聊