zoukankan      html  css  js  c++  java
  • 通过配置nginx的header路由到不同环境的服务器

    1、前言

    有这样的需求,需要请求头里的header来判断我们应该访问线下服务器,还是灰度,或者线上服务器,下面记录一下

    2、网关nginx配置

    注:

      1、$http_ 取请求头的值的用法,需要nginx 版本1.10.x+ 支持

      2、underscores_in_headers 默认值为off。默认会把header中参数的 "_" 下划线去掉,所以后台服务器后就获取不到带"_"线的参数名

      3、如果请求头是 ufe-version: "gray",$http_ufe_version 也能取到值。(所以,如果你不打开 underscores_in_headers ,那么,只需要前端在请求的时候,把header 写成 ufe-version ,而不是 ufe_version

    upstream online {
        server 172.20.125.78:1001;
    }
    
    upstream gray {
        server 172.20.125.76:1001;
    }
    
    server {  
        listen 1001;
        server_name localhost;
    
        root /opt;
        index index.html;
    
        charset utf-8;
        underscores_in_headers on;
        location / {
            if ($http_ufe_version = "gray") {
                proxy_pass http://gray;
                # 注意,这里末尾不能加 "/" ,否则会报语法错误,如果想要丢弃匹配字符串,自己去目标服务器做这个处理即可
                break;
            }
            proxy_pass http://online;
        }
    }

    那么,在访问目标url的时候,请求头加上   ufe_version = "gray" 或者 ufe-version="gray" 即可访问到灰度服务器

  • 相关阅读:
    时间安排还是很不合理
    ZOJ Problem Set
    ZOJ Problem Set
    ZOJ Problem Set
    ZOJ Problem Set
    还是很水啊!!!
    pragma mark
    IOS应用发布NSLog的如何注释
    设定时间让应用从后台回来是否重新启动应用
    Mac 上SVN上传.a文件
  • 原文地址:https://www.cnblogs.com/lkc9/p/15777977.html
Copyright © 2011-2022 走看看