我已经使用 Nginx 设置了反向代理,反向代理工作正常,正如预期的那样。我还有另一种情况,我需要使用 proxy_pass 根据匹配字符串重定向 URL。
如果 URL 包含 massimodutti.de,这就是我想要的其余调用,因此它应该使用 proxy_pass 路由到德国服务器
目前我很空白,正在寻找解决方案,任何帮助都将不胜感激...
答案1
您应该使用 nginx 映射功能将查询参数映射到proxy_pass
目标。它的工作原理如下:
在 nginx 配置http
级别,添加如下映射:
map $arg_url $proxyserver {
default default.server;
"~\.de" german.server;
}
其中,您将其替换default.server
为默认服务器的域名和german.server
德国服务器的域名。
proxy_pass http://$proxyserver;
然后,在您的块中使用server
反向代理目标定义。
答案2
我通过在我的 nginx 反向代理配置中添加这些行实现了这一点 $args 是不区分大小写的搜索方法它将在请求的 URL 中搜索“.de”并代理请求。
如果($args〜“ .de”){proxy_passhttp://104.xx.xx.xx:80; }
如果($args〜“ .ca”){proxy_passhttp://104.xx.xx.xx:80; }