有没有基于查询参数的代理传递方法?我需要将根 URL 请求代理传递到服务器 A。但是,如果根 URL 具有某些查询参数,我需要代理传递到服务器 B。我该如何实现?以下是我当前的配置:
location / {
proxy_pass http://xxxxxx;
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
}
答案1
您可以使用if
语句和中间变量,因为proxy_pass
它本身不能位于if
语句内。
location / {
set $pp_d example.net;
if ($arg_tld = com) {
set $pp_d example.com;
}
proxy_pass http://$pp_d;
proxy_redirect off;
...
}