Nginx与多个位置冲突

时间:2016-07-26 16:53:48

标签: nginx nginx-location

我在Nginx上有以下配置。

location ~ (/website|/login) {
     #proxy to server A
     ...
 }

location /dashboard {
     #proxy to server B
     ....
}

/dashboard/loginserver A发出请求时,会发生冲突,而server B代替我所希望的location /website { #proxy to server A ... } location /login { #proxy to server A ... } location /dashboard { #proxy to server B .... }

一个完美运作的丑陋解决方案:

<style name="ButtonStyle" parent="ButtonStyleBase">
    <item name="textAllCaps">false</item>
    <item name="android:textColor">#000000</item>
</style>

如何更改/ dashboard / login的此配置与#b定义相匹配? 我想避免在丑陋的解决方案中使用重复的代码。

1 个答案:

答案 0 :(得分:0)

你的丑陋&#34;解决方案实际上简洁明了。它并没有涉及可能难以理解和修改的正则表达式魔法。

  

http://nginx.org/en/docs/http/ngx_http_core_module.html#location

     

&LT; ...&GT; nginx首先检查使用前缀字符串定义的位置。 &LT; ...&GT;然后按照它们在配置文件中的出现顺序检查正则表达式。正则表达式的搜索在第一个匹配时终止,并使用相应的配置。

但这里只有两个位置块的解决方案。

# Location order is important!

location ~ /dashboard {
     #proxy to server B
}

location ~ (/website|/login) {
     #proxy to server A
}