【发布时间】:2015-12-25 20:31:33
【问题描述】:
我在 nginx.conf 文件中有两个不同的 server_name:
第一个为:
server_name ~^(?<subdomain>.+)\.nithinveer\.com$;
location /
{
proxy_pass http://192.168.6.190/Profiles/$subdomain/default.aspx$request_uri/;
access_log /var/log/nginx/true.log;
}
另一个是
server_name ~^(?<subdomain>.+)\.nithinveer\.com\.(?<extension>)$;
location /extension
{
proxy_pass http://192.168.6.190;
access_log /var/log/nginx/false.log;
}
现在问题是我想同时使用基于 server_name 中的 server_name。如果没有带有 server_name 的扩展名,它应该转到第一个位置。如果有分机,它应该转到第二个位置。
但是在运行 nginx 时,它并没有移动到第二个 server_name
任何人都可以为此找到一些解决方案吗...?
我认为一个解决方案(可能是错误的)。
server_name ~^(?<subdomain>.+)\.nithinveer\.com\.(?<extension>.+)$;
if($<extension> == NULL)
{
location /
{
proxy_pass http://192.168.6.190/Profiles/$subdomain/default.aspx$request_uri/;
access_log /var/log/nginx/true.log;
}
}
else
{ location /
{
proxy_pass http://192.168.6.190;
access_log /var/log/nginx/false.log;
}
但是 if 语句的语法会抛出错误。
【问题讨论】:
-
在if条件下,扩展变量不需要'
-
并在删除 '\.' 后尝试com之后
标签: nginx syntax url-rewriting reverse-proxy