我的网站

您当前的位置:主页 > 我的网站国内 >

作者:密顺秉公 来源:原创 发布日期:08-22

天眼查

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

x战警

一 |     

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

二 | 扛CC的第一道闸门不在代码里,在Nginx的限流模块里,配置成本几乎为零。

三 |             新华社北京8月25日电(记者张骁)记者从北京市重大项目办和京投轨道公司获悉,京冀首条跨省域城市轨道交通北京地铁22号线(红庙站—平谷站)25日启动空载试运行,为2026年底基本开通奠定基础。    limit_req的原理是漏桶:你设定一个速率,超速的请求直接返回503或延迟排队。       空载试运行将分两个阶段实施:第一阶段重点开展车辆、信号、通信等八大系统的综合联调与功能测试;第二阶段将开展“跑图”试运行,对列车正点率、运行图兑现率等关键指标进行验证,确保线路运行指标达到初期运营前安全评估标准。

四 |        北京地铁22号线(红庙站—平谷站)全长约79.1公里,共设车站20座,线路串联北京CBD核心区、北京城市副中心、河北三河市燕郊镇、北京平谷中心城等重点功能区。

五 |        线路速度优势明显,高架段最高时速达160公里,地下段达120公里。先用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个请求立即处理、不排队,超出就直接拒。从河北三河市燕郊镇到北京城市副中心最快约9分钟、到北京CBD核心区红庙站最快约28分钟。       作为“轨道上的京津冀”标志性项目,线路建成后也将历史性实现河北三河市与北京城市轨道交通网的“无缝衔接”,进一步推进北京非首都功能疏解与区域产业协同发展。想对登录、搜索这类昂贵接口管得更严,单独再定义一个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://4yynrfu.cousizhegaobaolengkuo.bond/itvjlm/20260826/7453452.html

Published on:22:24:26


Copyright @ 2016-2018 我的网站 版权所有