teg nginx根据header分流

葫芦的运维日志

下一篇 搜索 上一篇

2019/09/17 15:13


nginx根据header分流

不同header头分发到不同节点

同一域名路径根据不同header头分发到不同节点,以此来做灰度发布。 主要配置 通过 http_newversion 判断版本,转发至不同upstream。

test.bthlt.com.conf

server {
    listen       80;
    server_name  test.bthlt.com;
    underscores_in_headers on;
    access_log  /data/log/elk/test.bthlt.com.access.log weimob_json;
    error_log  /data/log/nginx/test.bthlt.com.error.log;

    location / {
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X_CUSTOM_HEADER $http_host;
    if ($http_newversion = '1'){
         proxy_pass http://hl_v1_node;
    }
        if ($http_newversion = '2'){
         proxy_pass http://hl_v2_node;
        }
     }
}

upstream

upstream hl_v1_node  {
    server 10.1.1.1:8080 id=102 weight=10;
    keepalive 100;
    check interval=3000 rise=2 fall=5 timeout=1000 type=tcp;
}

upstream hl_v2_node  {
    server 10.1.1.2:8080 id=102 weight=10;
    keepalive 100;
    check interval=3000 rise=2 fall=5 timeout=1000 type=tcp;
}

测试

curl -H "newversion:2" http://test.bthlt.com

curl -H "newversion:1" http://test.bthlt.com

葫芦的运维日志

上一篇 搜索 下一篇
© 冰糖葫芦甜(bthlt.com) 2019 王梓 赞助联系方式 陕ICP备17005322号