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

一 |
一键部署OpenClaw 服务器CPU莫名飙高,带宽跑满,看日志全是同一个IP一秒打来几十个请求——这不是业务火了,是被CC了。扛CC的第一道闸门不在代码里,在Nginx的限流模块里,配置成本几乎为零。
公牛球员诺曼·鲍威尔近日接受记者Mark Medina采访时谈到了自己在新球队的角色定位。鲍威尔表示,最重要的是心态,他在联盟中经历过一切,扮演过多种角色,经历过起起落落。在更衣室里,他要大声说话、鼓励队友,并通过行动向大家展示——无论情况如何、角色如何,他都会全力以赴,第一个到球馆、最后一个离开,致力于为成功付出一切,帮助年轻球员塑造自己的道路。鲍威尔指出,目前公牛队中大部分都是新秀或生涯前两三年的球员,年龄较大的也没有超过30岁,因此他要分享自己的经验,帮助球队建立赢球心态。他生涯中几乎都在赢球的球队效力,仅缺席过两次季后赛,来到这里就是为了帮助球队赢球并以此方式领导球队。

二 | 鲍威尔认为球队潜力巨大,虽然媒体可能会看衰他们,但他要灌输自信,让大家变得更好,提高对自身以及整个联盟对他们的期望。 limit_req的原理是漏桶:你设定一个速率,超速的请求直接返回503或延迟排队。先用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挂上去就行,互不影响。 # 对登录接口单独限流:每秒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日志确认正常用户没被误伤。限流阈值别拍脑袋定,先统计自己站点的正常峰值,设成峰值的两倍左右再逐步收紧。限流是防守,如果卡死自己人就本末倒置了。
三 | 数据来源:nginx.org官方文档 ngx_http_limit_req_module 模块说明
申请创业报道,分享创业好点子。

四 | 点击此处,共同探讨创业新机遇!。
Current article:http://gmv0v.pisezuibanzoukou.cyou/dviiwi/ajqq.html
Published on:08:21:00
一袋女王
来自星星的你
安娜情欲史
伪娘
猩球崛起
欢乐喜剧人
今日头条
天地传说之鱼美人













