nginx 如何 配置路径以**开头

2022-07-18 17:52:13 +08:00
 hhhhhh123

如题 我要配置以 api 开头的路径 例子 1 http://localhost/api/a 例子 2 http://localhost/api/a/b/c

location ^~ /api/ { proxy_pass http://localhost:5000/test; }

已经尝试网上很多方法了 但是还是不行 。

1610 次点击
所在节点    程序员
9 条回复
xiaoriri666
2022-07-18 18:16:12 +08:00
location ^~/api/ {
proxy_pass http://127.0.0.1:30003/;
}

试试这个呢,~中间没有空格
Seanfuck
2022-07-18 18:19:44 +08:00
是不是配置里面有 if 条件,if 的优先级比 location 高,要把 if 放在 location / {} 里。
hatebugs
2022-07-18 19:34:14 +08:00
开 debug 日志看匹配到哪个 location 了
killva4624
2022-07-18 21:29:04 +08:00
把完整的配置文件贴出来。
Martens
2022-07-18 22:05:29 +08:00
nginx 是返回 404 ?还是 502 ?

如果是 404 ,那么 404 是你后端返回的吗?

如果是加一个重写规则:rewrite ^/api/(.*)$ /$1 break;
hhhhhh123
2022-07-19 09:28:25 +08:00
@xiaoriri666 这个不行
hhhhhh123
2022-07-19 09:28:48 +08:00
@Seanfuck 还没写 if 呢 目前就是 默认配置 然后这是第一个 location
hhhhhh123
2022-07-19 09:29:16 +08:00
@Martens 返回 404 ,不过这个 404 不是后端返回的 ,
hhhhhh123
2022-07-19 10:10:23 +08:00
@Martens 看了下 服务端的日志,404 是服务端出来的 proxy_pass http://localhost:5000/test;我以为这行代码 不会进行将上面多余的路径加上来, 请求进来居然是 /testa, /testa/b/c

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/867076

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX