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

nginx 如何单独限制动态请求

  •  
  •   liyunlong5 · 2022-07-17 16:11:49 +08:00 via Android · 2027 次点击
    这是一个创建于 860 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT ,由于 nginx 不支持 if 嵌套,比方说我想单独限制 uri 中含有?的动态请求,应该怎么实现呢,请大神赐教

    个人思路,用 location+正则表达式,由于不会正则,于是表达不了。。。

    7 条回复    2022-08-01 14:17:42 +08:00
    zoharSoul
        1
    zoharSoul  
       2022-07-17 17:15:38 +08:00
    ? 和动态请求有必然联系吗?
    eason1874
        2
    eason1874  
       2022-07-17 18:12:59 +08:00
    按实际业务路径去限流,别按 ? 查询符号,很多软件分享链接会加查询参数,每次都不一样
    Xusually
        3
    Xusually  
       2022-07-17 18:27:43 +08:00 via iPhone
    NginxLua
    或者干脆用 OpenResty
    自定义轻量级的 WAF 很容易
    1point
        4
    1point  
       2022-07-18 09:17:04 +08:00
    直接判断$args 不行吗
    1point
        5
    1point  
       2022-07-18 09:37:07 +08:00
    @1point 或者$is_args 这样判断
    liyunlong5
        6
    liyunlong5  
    OP
       2022-08-01 09:24:35 +08:00
    @1point nginx 不支持 if 潜逃嵌套。。

    location {
    if $is_args
    limit.....

    这种语法行不通
    1point
        7
    1point  
       2022-08-01 14:17:42 +08:00
    如果这个判断就可,嵌套就没有问题。一般是通过变量值设置来实现的。参考这个
    https://www.jianshu.com/p/d9ef4b62c6fe
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   942 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:58 · PVG 04:58 · LAX 12:58 · JFK 15:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.