首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Nginx与多个位置的冲突

Nginx与多个位置的冲突
EN

Stack Overflow用户
提问于 2016-07-26 16:53:47
回答 1查看 1.1K关注 0票数 0

我在Nginx上有下面的配置。

代码语言:javascript
运行
复制
location ~ (/website|/login) {
     #proxy to server A
     ...
 }

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

当向/dashboard/login发出请求时,冲突就会发生,我想要的是进入server A而不是server B

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

代码语言:javascript
运行
复制
location /website {
     #proxy to server A
     ...
 }

location /login {
     #proxy to server A
     ...
 }

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

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

EN

回答 1

Stack Overflow用户

发布于 2016-07-27 11:27:25

你的“丑陋”解决方案实际上是简洁和明确的。它不涉及可能难以理解和修改的regexp魔术。

module.html#location <...> nginx首先检查使用前缀字符串定义的位置。然后,按照正则表达式在配置文件中的出现顺序,检查<...>。正则表达式的搜索在第一次匹配时终止,并使用相应的配置。

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

代码语言:javascript
运行
复制
# Location order is important!

location ~ /dashboard {
     #proxy to server B
}

location ~ (/website|/login) {
     #proxy to server A
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38595760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档