首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >nginx根据ip进行灰度发布

nginx根据ip进行灰度发布

作者头像
SY小站
发布2020-06-15 14:55:21
发布2020-06-15 14:55:21
1.2K0
举报
文章被收录于专栏:SY小站的专栏SY小站的专栏

1. 介绍

之前公司做的都是蓝绿发布,灰度也就是基于header,cookie,url,query等等的,但是有的开发想着又能实现根据来源ip做灰度,又能实现蓝绿发布,在这里我写了下简单的实现方式。

2. 解决办法

nginx 负载均衡器判断客户端IP地址,如果是办公室IP,则反向代理到灰度环境;如果不是,则反向代理到生产环境。

下面是一个域名多项目的事例:

代码语言:javascript
复制
server {
    listen       80;
    server_name  sy.test.com;


    add_header X-Cache $upstream_cache_status;
    charset utf-8;
    access_log /data/nginxlog/sy.test.com.log;
    set $web_backend tomcat-test-scm-v1;
    if ($remote_addr ~ "x.x.x.x") {
        set $web_backend tomcat-test-scm-v2;
    }
    if ($remote_addr ~ "x.x.x.x") {
        set $web_backend tomcat-test-scm-v2;
    }
    set $hd_backend live-v1;
    if ($remote_addr ~ "x.x.x.x") {
        set $hd_backend live-v2;
    }
    if ($remote_addr ~ "x.x.x.x") {
        set $hd_backend live-v2;
    }
    location ~ ^/live {
        proxy_redirect  off;
        proxy_set_header Host  $host;
        proxy_pass      http://$hd_backend;
    }

    location ~ / {
        proxy_redirect  off;
        proxy_pass      http://$web_backend;
    }
}

实现效果,办公网访问的是灰度的v2版本,当测试通过,只需将v1版本替换成v2。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SY技术小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 介绍
  • 2. 解决办法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档