我在Nginx上有下面的配置。
location ~ (/website|/login) {
#proxy to server A
...
}
location /dashboard {
#proxy to server B
....
}
当向/dashboard/login
发出请求时,冲突就会发生,我想要的是进入server A
而不是server B
。
一个丑陋的解决方案,完美地运作:
location /website {
#proxy to server A
...
}
location /login {
#proxy to server A
...
}
location /dashboard {
#proxy to server B
....
}
如何更改/dashboard/login与#b定义匹配的配置?我希望避免在丑陋的解决方案中使用重复的代码。
发布于 2016-07-27 11:27:25
你的“丑陋”解决方案实际上是简洁和明确的。它不涉及可能难以理解和修改的regexp魔术。
module.html#location <...> nginx首先检查使用前缀字符串定义的位置。然后,按照正则表达式在配置文件中的出现顺序,检查<...>。正则表达式的搜索在第一次匹配时终止,并使用相应的配置。
但是这里是只有两个位置块的解决方案。
# Location order is important!
location ~ /dashboard {
#proxy to server B
}
location ~ (/website|/login) {
#proxy to server A
}
https://stackoverflow.com/questions/38595760
复制相似问题