跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Nginx 如何限制相同 request_body 的访问频率
未分類
20 6 月 2020

Nginx 如何限制相同 request_body 的访问频率

Nginx 如何限制相同 request_body 的访问频率

資深大佬 : aoscici2000 76

limit_req_zone $request_body zone=myzone:10m rate=2r/s;  server {     location /push {         limit_except POST {             deny  all;         }         limit_req zone=myzone burst=2 nodelay;         ...     } } 

如上, 我希望能限制相同 request_body 的访问频率, 好像不起作用?

大佬有話說 (9)

  • 資深大佬 : lihongjie0209

    你计算一下 request_body 的 hash 放到 header 中, 然后根据 header 去重就可以了

  • 資深大佬 : rrfeng

    @lihongjie0209
    想当然了,了解一下 Nginx 的处理阶段

  • 資深大佬 : lihongjie0209

    @rrfeng #2 对哦, 先处理 header 再处理 bady, 搞反了

  • 資深大佬 : lihongjie0209

    @rrfeng #2 要不前端做这个 hash ?

  • 資深大佬 : caryqy

    换个方式,通过 redis 来,md5 每次请求添加到 redis 中,设置一个过期时间,下个请求先判断 redis 中是否存在, 频率通过过期时间来控制

  • 資深大佬 : cydleadingx

    openresty 处理下

  • 主 資深大佬 : aoscici2000

    @cydleadingx 为了一个辅助性功能的话, 学习成本太大了

  • 資深大佬 : cydleadingx

    @aoscici2000 一天而已

  • 主 資深大佬 : aoscici2000

    @lihongjie0209 我试了一下多做一层代理, 第一层把 request_body 添加到 header, 由第二层做去重, 但好像不太成功, 不知道 header 是怎么设置的? 能否指点一下 ^^

    limit_req_zone $http_HEADER zone=myzone:10m rate=1r/s;

    location /a {
    proxy_pass http://127.0.0.1/b;
    add_header data $request_body;
    }

    location /b {
    proxy_pass http://127.0.0.1/real-addr;
    limit_req zone=myzone burst=2 nodelay;
    }

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具