nginx映射:在另一个映射中使用一个映射的值
根据nginx文档,可以在nginx映射中将变量用作值。我想这样做:nginx映射:在另一个映射中使用一个映射的值,nginx,webserver,Nginx,Webserver,根据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 ~ ^/(?<
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;
}
map$http\u host$子域{
~*.foo.com foo-internal;
~*.bar.com内部条形图;
}
映射$app$服务器{
app1 app1.$subdomain.example.com;
app2 app2.$subdomain.example.com;
}
...
位置^/(?\w+/(*)){
代理传递http://$server/$2$is_args$args;
}
因此,对于对foo.com/app1
的请求,可以将其代理到app1.foo internal.example.com
,而对bar.com/app2
的请求将代理到app2.bar internal.example.com
(即,我需要两个映射一起工作)
希望我的问题是清楚的,如果没有让我知道
提前感谢:)不幸的是,“结果值可以是字符串或其他变量”,因此它不能用变量表示:(你的意思是它不能是
app
$subdomain`但可以是$subdomain
本身吗(是的。在您的特殊情况下,您可以使用代理\u pass http://$app.$subdomain.example.com/..
啊,很有趣-让我试试这个!