nignx 如何批量匹配路径

2019-03-07 09:09:27 +08:00
 icomelook

location ~*/(1|2|3...109)$ { proxy_pass http://127.0.0.1; }

location ~*/(110|111|112...235)$ { proxy_pass http://127.0.0.1; }

location ~*/(236|237|238...2235)$ { proxy_pass http://127.0.0.1; }

如何批量匹配路径 总不能几千个文件夹都列出来吧?

1716 次点击
所在节点    NGINX
3 条回复
Lax
2019-03-07 12:10:05 +08:00
rewrite_by_lua

或者没有 lua 模块时,从 location 取个变量出来,用 map。

map $var $backend_group {
1 127.0.0.1
2 127.0.0.2
...
default 127.0.0.3
}

location ~ /(?<var>.+)$ {
proxy_pass http://$backend_group
}
icomelook
2019-03-07 14:51:59 +08:00
@Lax 不知道 lua 和 map 哪个效率高?
Lax
2019-03-07 22:38:02 +08:00
@icomelook 用 ab 测一下就知道了。

map 也支持正则,可以 map $uri $backend_group {}, 这样的话 location 匹配里就可以不写正则啦。

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

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

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

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

© 2021 V2EX