V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
icomelook
V2EX  ›  NGINX

nignx 如何批量匹配路径

  •  
  •   icomelook · 2019-03-07 09:09:27 +08:00 · 1719 次点击
    这是一个创建于 2092 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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; }

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

    Lax
        1
    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
        2
    icomelook  
    OP
       2019-03-07 14:51:59 +08:00
    @Lax 不知道 lua 和 map 哪个效率高?
    Lax
        3
    Lax  
       2019-03-07 22:38:02 +08:00   ❤️ 1
    @icomelook 用 ab 测一下就知道了。

    map 也支持正则,可以 map $uri $backend_group {}, 这样的话 location 匹配里就可以不写正则啦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3101 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:29 · PVG 22:29 · LAX 06:29 · JFK 09:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.