查看: 67867|回复: 819
打印 上一主题 下一主题

Nginx limit_req 限流:几行配置挡住大部分CC攻击_我的网站

[复制链接]
跳转到指定楼层
楼主

极度深寒

Nginx limit_req 限流:几行配置挡住大部分CC攻击_我的网站

比特币

A |     

     一键部署OpenClaw        服务器CPU莫名飙高,带宽跑满,看日志全是同一个IP一秒打来几十个请求——这不是业务火了,是被CC了。

B | 扛CC的第一道闸门不在代码里,在Nginx的限流模块里,配置成本几乎为零。    本人于25年12月在闪小融平台申请借款额度,平台在借款流程中默认勾选会员服务、未显著告知收费规则、未经本人明确主动同意,自动扣除会员服务费329元。    该费用属于违规前置捆绑收费,变相构成砍头息,本人全程未使用任何会员权益、未享受对应服务,平台收费模式侵害消费者知情权与公平交易权,综合借款成本远超法定合规...。    limit_req的原理是漏桶:你设定一个速率,超速的请求直接返回503或延迟排队。

C | 先用limit_req_zone定义一个计数区,再在location里挂上limit_req,两步完事。    

# nginx.conf 的 http 块里定义限流区
    # 以客户端IP为key,10MB内存可存约16万个IP状态    # rate=10r/s 表示平均每秒最多放行10个请求    limit_req_zone $binary_remote_addr zone=req_per_ip:10m rate=10r/s;    # server 或 location 块里应用    server {    location / {    limit_req zone=req_per_ip burst=20 nodelay;    proxy_pass http://127.0.0.1:8080;    }    }    burst=20是缓冲队列长度,配合nodelay表示突发20个请求立即处理、不排队,超出就直接拒。想对登录、搜索这类昂贵接口管得更严,单独再定义一个rate=2r/s的zone挂上去就行,互不影响。

D |     

# 对登录接口单独限流:每秒2个,突发5个
limit_req_zone $binary_remote_addr zone=login_limit:10m rate=2r/s;

location /login.php {
limit_req zone=login_limit burst=5 nodelay;
# 被限流的请求返回429而不是默认503
limit_req_status 429;
fastcgi_pass 127.0.0.1:9000;
}
    验证很简单:reload之后用ab压一下,ab -n 200 -c 20 https://你的域名/,看返回里有没有429或503;同时tail -f日志确认正常用户没被误伤。

E | 限流阈值别拍脑袋定,先统计自己站点的正常峰值,设成峰值的两倍左右再逐步收紧。限流是防守,如果卡死自己人就本末倒置了。    数据来源:nginx.org官方文档 ngx_http_limit_req_module 模块说明

        
    

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!。

Current article:http://6ds96i.menxiaomoriniangbai.bond/mgy43/6wdp.html

Published on:06:04:03


点击获取礼包
沙发
发表于 06:26:19 | 只看该作者
深空失忆 神探伽利略 沉默的羔羊
板凳
发表于 08:28:02 | 只看该作者
蜜月计划 神偷奶爸2 舞出我人生
地板
发表于 13:37:17 | 只看该作者
一拳超人 太极张三丰 大都会
5#
发表于 19:50:49 | 只看该作者
怒火攻心 裸婚时代 重口味
6#
发表于 21:07:41 | 只看该作者
神探狄仁杰 白莲花 那一场呼啸而过的青春
7#
发表于 20:56:08 | 只看该作者
腾讯 唐伯虎点秋香 诡域新娘
8#
发表于 17:51:05 | 只看该作者
家有儿女 全职妈妈 诈欺游戏
9#
发表于 13:21:26 | 只看该作者
阴阳路 财经郎眼 欢乐颂
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

我的网站是互联网最大的搜索引擎优化研究中心,是致力于培养学员用户体验意识和提供专业技术解答的专业培训机构, 成立于2007年,2008年第一家入驻歪歪的培训机构,2014年成为腾讯课堂战略合作机构。
© 2007-2016 我的网站 湘ICP备13004652号-1 Powered by Discuz!X Template by 我的网站 
快速回复 返回顶部 返回列表