我的问题是:
如果我发送请求http://x.example.com/a/sth,这是我的nginx代理配置:
location ~ /([a-z0-9]+) {
proxy_pass http://$1.example.com:8000/;
}
但是它不能代理http://a.example.com/sth
我该如何配置?
答案 0 :(得分:0)
您需要先从URI中删除/a/
前缀,然后再将其传递给上游。您可能可以在同一正则表达式中执行此操作。
例如:
location ~ ^/([a-z0-9]+)/(.*)$ {
proxy_pass http://$1.example.com:8000/$2$is_args$args;
}
您可能需要指定一个resolver指令,以便nginx
可以解析$1.example.com
的地址。