根据nginx文档,可以在nginx映射中使用变量作为值。我想做这样的事情:
map $http_host $subdomain {
~*.foo.com foo-internal;
~*.bar.com bar-internal;
}
map $app $server {
app1 app1.$subdomain.example.com;
app2 app2.$subdomain.example.com;
}
...
location ~ ^/(?<app>\w+)/(.*) {
proxy_pass http://$server/$2$is_args$args;
}
因此,对于foo.com/app1
的请求,可以将其代理到app1.foo-internal.example.com
,并将bar.com/app2
的请求代理到app2.bar-internal.example.com
(即我需要两个地图到合作)。
希望我的问题很明确,如果没有,请告诉我!
提前致谢:)