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" 即可访问到灰度服务器

  • 相关阅读:
    EMC研究院电面记
    被百度放了鸽子
    最长严格递增子序列算法
    括号配对问题
    RTP 协议
    C++ 纯虚函数, 记上一笔!
    一年又一年
    direct3d Colorkey 应用.
    CEGUI 中文输入与显示
    被遗忘的C,记录一笔
  • 原文地址:https://www.cnblogs.com/lkc9/p/15777977.html
Copyright © 2011-2022 走看看