nginx动态转发

136 阅读1分钟

xxx:有一个简单的nginx转发帮我加一下

我:莫得问题

xxx:根据请求头参数调接口时转到对应的端口

我:嘶~ 这也不是很简单

nginx map指令

官方示例:nginx.org/en/docs/htt…

知乎也有大佬对map方法讲解:zhuanlan.zhihu.com/p/698105700

写在 http 层
map $进行映射变量名 $映射结果变量名 {
// 进行映射变量名的值为x时代理到xxx
1 http://127.0.0.1:3001;
2 http://127.0.0.1:3002;
default http://127.0.0.1:3001;
}

使用map后发现会重定向到指定的变量值,接口参数都莫得了 导致访问接口404

在server对应需要转发值使用正则进行了处理拼接访问 接口200 大功告成

有好的方案可以让俺借鉴借鉴

     location /dynamic-xxx/ {
            # 根据请求头参数动态处理
            add_header X-Debug-new_uri $new_uri;
            set $new_uri $request_uri;
            add_header X-Debug-Backend $new_uri;
            # 使用正则去掉原接口名称 保留查询参数
            if ($new_uri ~* ^接口名称(.*)$) {
                set $new_uri $1;
            }
            add_header X-Debug-if $变量值$new_uri;
            proxy_pass $映射结果变量名$new_uri;
     }