我正在寻找类似的事情:
location ^/foo {
rewrite ^/foo/(.+)/(.*)$ /$1/$2 break;
proxy_pass http://$1:8080/$2
}
是否有某种方法可以根据重写语句的匹配来确定 proxy_pass URL?
Apache mod_rewrite 中的粗略等效项是:
RewriteRule ^/foo/(.+)/(.*)$ http://$1:8080/$2 [L,P]
答案1
您可以使用重写模块提取并设置包含所需值的变量,然后在代理指令中使用该变量。
if ($uri ~ ^/foo/(.+)/(.*)$) {
set $part1 $1;
set $part2 $2;
}
rewrite ^/foo/(.+)/(.*)$ /$1/$2 break;
proxy_pass http://$part1:8080/$part2;