【发布时间】:2020-06-12 16:15:02
【问题描述】:
我让 nginx 在 docker-compose 设置中运行,我想实现以下目标:
每个包含 /something/ 的 url 都会传递给应用程序 1
每个包含 /something/alsothis/ 的 url 都会传递给应用程序 2
我当前的配置有:
location ~* ^/something/(?<path>.+) {
proxy_pass http://app1/$path;
}
location ~* ^/something/alsothis/(?<path>.+) {
proxy_pass http://app2/$path;
}
当我尝试https://www.example.com/something/rest_of_path 时,它工作正常。
但是,当我尝试 https://www.example.com/something/alsothis/rest_of_path 时,我在 Postman 中收到 Unkown 错误(在 nginx 中记录了 500 错误)。
我还仔细检查了 app2 是否正常工作。当我将第一个位置更改为 app2 时,它也可以正常工作。
似乎无法弄清楚出了什么问题,非常感谢所有帮助。
提前致谢!
【问题讨论】:
-
正则表达式按顺序求值,直到找到匹配项。因此,您需要反转这两个
location语句,因为第一个也匹配任何用于第二个的 URI。
标签: nginx nginx-reverse-proxy nginx-location