nginx 如何配置防止慢速攻击 [特殊字符][特殊字符][特殊字符]

BunkerWeb 开源 WAF/WAAP 实战:基于 Nginx 的 Web 安全防护部署指南 Web 应用暴露在公网后,SQL 注入、XSS、恶意爬虫与 CC 攻击等威胁接踵而至,仅靠业务代码自建防护很难覆盖层出不穷的攻击变种。WAF(Web 应用防火墙)将安全能力前置到流量入口,成为收敛攻击面的关键手段;而更进一步的 WAAP 则扩展至 API 场景,覆盖防爬、限流与 Bot 识别。BunkerWeb 作为一款基于 Nginx 构建的开源 WAF/WAAP,在保留 Nginx 高性能底座的同时,通过模块化设计集成规则引擎、频率限制、IP 封禁、自动 HTTPS 等能力,并借助 Docker 容器化 阅读详情

慢速攻击是一类用很少带宽就能长期占用服务器连接/资源的攻击方式。攻击者通过非常慢地发送请求头或请求体,或极慢地读取服务器响应,让每个连接都“挂着不结束”,从而耗尽 Web 服务器(或上游应用、数据库、代理)的并发与缓冲资源。

典型类型主要有以下几个方面:

  • Slowloris(慢请求头):客户端以极低速率分片发送 HTTP 头部,始终不把头部发完,服务器就一直等待。
  • Slow POST / RUDY(慢请求体):先宣称要上传较大的 Content-Length,然后以极慢速率发送请求体,服务器为其保留缓冲与上游连接。
  • Slow Read(慢读取响应):客户端窗口/读取速率极低,迫使服务器缓冲并保持连接很久(尤其响应较大时)。
  • HTTP/2 变种:滥用单连接多流(streams)和窗口控制:开很多流但每流都很慢,放大资源占用。

传统 DDoS 依靠高带宽与高包速直接压垮网络/设备,而慢速攻击用极低带宽长期占用连接,更隐蔽,常被误认为是网络状况差的正常用户。

现场通常会看到活跃连接(尤其 reading)持续攀升,但总体带宽并不高。

error_log 中频繁出现 client timed out、client sent invalid header while reading client request headers 等信息。

上游服务看似空闲却体验发卡,Nginx 的 429/502/504 增多,访问日志还能发现同一 IP 维持大量长期未完成的请求或异常长的响应时间。

  • 429 表示“请求过多被限流”,通常稍后或按 Retry-After 重试即可。
  • 502 表示“网关收到上游无效响应或连不上上游”,多见于上游挂掉、拒连或协议不匹配。
  • 504 表示“等待上游超时”,通常是上游处理太慢一直没回。

如何防护

核心目标就是尽快关闭拖延发送请求头/请求体或极慢读取响应的连接,限制单 IP 的并发与速率,避免慢连接占满 worker 的 worker_connections 与上游资源。

  • 收紧超时:client_header_timeout、client_body_timeout、send_timeout、keepalive_timeout。
  • 超时立刻复位:reset_timedout_connection on; 减少 TIME_WAIT/ 资源滞留。
  • 限并发/限速:limit_conn、limit_req(必要时返回 429 并带 Retry-After)。
  • HTTP/2 参数:降低 http2_max_concurrent_streams,设置 http2_recv_timeout/http2_idle_timeout。
  • 反向代理场景:proxy_request_buffering on; 先把请求缓冲到 Nginx,避免慢上传占住上游。
  • 分路径/分人群:对登录、搜索等接口更严;对可信源/健康检查放宽或白名单。
  • 边缘清洗:结合 CDN/WAF 的连接层/应用层限速更稳。

一些相关的配置可以参考下面的 Nginx 配置:

worker_processes auto;

events {
    worker_connections  4096;
    multi_accept        on;
}

http {
    # 1) 关键超时(防慢头/慢体/慢读)
    client_header_timeout  5s;   # 等头部时间
    client_body_timeout    10s;  # 等请求体每个读周期的时间
    send_timeout           10s;  # 发送响应给客户端每个写周期的时间
    keepalive_timeout      10s;  # keep-alive 连接空闲时间
    keepalive_requests     100;  # 单连接最大请求数,防长时间占用

    # 2) 连接超时直接复位(释放资源更快)
    reset_timedout_connection on;

    # 3) 并发限制(每 IP)
    #    10m 可容纳 ~160k 键(基于 $binary_remote_addr)
    limit_conn_zone $binary_remote_addr zone=perip:10m;

    # 4) 速率限制(每 IP),按需调大/调小 rate
    limit_req_zone  $binary_remote_addr zone=req_perip:10m rate=10r/s;

    # 5) HTTP/2 专项(若开启了 http2)
    http2_max_concurrent_streams 64; # 降并发流数
    http2_recv_timeout           5s; # 接收客户端帧超时
    http2_idle_timeout          10s; # HTTP/2 空闲超时

    # 6) 合理的头部缓冲(避免过大内存占用;默认已够用,按需微调)
    large_client_header_buffers 4 8k;

    server {
        listen 443 ssl http2;
        server_name example.com;

        # 并发/速率在 server 层生效
        limit_conn       perip 20;        # 每 IP 并发连接上限
        limit_conn_status 429;

        limit_req        zone=req_perip burst=20 nodelay;  # 短突发
        limit_req_status 429;

        # 限制请求体大小(配合 body_timeout 可更快淘汰异常大/慢上传)
        client_max_body_size 10m;

        # 【反向代理站点强烈推荐】先把完整请求缓冲到 Nginx
        # 避免上游被慢上传拖住连接
        location / {
            proxy_pass http://app_backend;
            proxy_request_buffering on;

            proxy_connect_timeout  3s;
            proxy_send_timeout    10s;  # 向上游发送(写)超时
            proxy_read_timeout    30s;  # 自上游读取(读)超时
        }

        # 对静态资源可放宽速率限制以提升体验(示例)
        location ~* \.(?:css|js|png|jpg|jpeg|gif|webp|ico|svg)$ {
            root /var/www/html;
            access_log off;
            expires 30d;
        }

        # 自定义 429 页面(可选)
        error_page 429 /429.html;
        location = /429.html { internal; return 429 "Too Many Requests\n"; }
    }
}

除此之外,还有一些数值上的建议:

  1. 高频 API 可将 rate 调小、burst 适度放大;页面类流量可相反。
  2. 对上传较多的业务,将 client_body_timeout 与 proxy_request_buffering on; 组合尤为关键。
  3. 如果公网复杂、遭遇中等强度慢攻:client_header_timeout 2-3s、client_body_timeout 5-8s、send_timeout 8-10s 往往更稳。

考虑到移动网络或跨境访问确实可能很慢,限流需要在防护与容错间取平衡。可以适度调大 burst,并返回合理的 Retry-After,让偶发拥塞得以通过。把严格策略仅应用在登录、搜索等敏感接口,对静态资源和页面流量适当放宽。对可信来源(如办公网、监控、合作方)设置白名单或更高配额,尽量减少误杀。

之于上面的理解,我们可以针对不同慢速攻击的做不同的优化了:

  • Slowloris(慢头部):用 client_header_timeout 严控请求头收齐时间,配合较短的 keepalive_timeout 降低长连驻留,并用 limit_conn 限制每 IP 并发;一旦超时,借助 reset_timedout_connection on; 立即复位断开。
  • RUDY / Slow POST(慢体):设置较短的 client_body_timeout,并开启 proxy_request_buffering on; 先在 Nginx 缓冲请求体,慢上传直接在边缘被淘汰且不上游;必要时配合 client_max_body_size 约束体积。
  • Slow Read(客户端读超慢):通过 send_timeout 限制客户端读取过慢的连接,触发即复位释放缓冲;若是 SSE/长轮询等合法长连,为对应路径单独放宽 send_timeout,避免误伤。

总结

慢速攻击是用极低带宽长期占用服务器连接/缓冲的攻击:攻击者故意慢发请求头/请求体或慢读响应,让连接一直不结束,耗尽并发与内存。

常见形态有 Slowloris(慢头部)、RUDY/Slow POST(慢请求体)与 Slow Read(慢读响应),在 HTTP/2 下还能通过多流+窗口控制放大影响。

典型症状是活跃连接(尤其 reading)持续升高但总体带宽不高,日志频繁出现超时/异常头部,且 429/502/504 增多、同一 IP 大量长时间未完成请求。

防护要点是收紧超时(client_header/body/send/keepalive)、开启 reset_timedout_connection、用 limit_conn/limit_req 控制每 IP 并发与速率,反向代理时启用 proxy_request_buffering on; 并调优 HTTP/2;同时对敏感路径更严、对可信来源适度放宽或白名单以减少误杀。

Nginx正则表达式DoS漏洞CVE-2024-38077:原理、复现与纵深防御实战 正则表达式是Web服务器配置中用于路由匹配和请求处理的常见技术,其核心原理是通过模式匹配引擎解析字符串。然而,当正则表达式设计存在缺陷时,特定输入可能触发引擎的灾难性回溯,导致CPU计算资源被耗尽,形成拒绝服务攻击。这种技术风险在Nginx等高性能Web服务器中尤为关键,因为其配置广泛使用正则表达式进行location匹配。从技术价值看,理解正则表达式回溯机制有助于构建更健壮的服务架构,避免单点请求导致整个服务不可用。应用场景主要涉及Web服务器的安全配置审计、应急响应和性能优化。本文聚焦于Nginx的CV 阅读详情

相关推荐

Rocky Linux 8下Nginx基础认证的SELinux与bcrypt兼容性实战

Nginx基础认证(auth_basic)是Web服务最常用的身份验证机制之一,其核心原理是通过HTTP Basic协议在请求头中传递Base64编码的用户名密码,并由服务器端比对预存的哈希凭证。该技术价值在于轻量、标准、无需额外依赖,但实际落地时高度受制于操作系统安全策略与密码算法兼容性。在Rocky Linux 8这一以SELinux和严格安全基线为默认特性的RHEL系发行版中,常见故障并非配置语法错误,而是SELinux上下文拒绝访问.htpasswd文件、或Nginx版本不支持httpd-tools

weixin_33898233的博客 434

nginx+tomcat服务器配置(秒杀安全扫描)

nginx配置修改1.解决配置limit_conn_zone来限制并发连接数      在http处添加      limit_conn_zone $binary_remote_addr zone=perip:10m;      limit_conn_zone $server_name zone=perserver:10m;2.解决 Slow HTTP POST vulnerability(150...

ERIZHU的博客 1723

Ubuntu上LEMP部署WordPress完整指南:性能、安全与高并发实战

WordPress作为全球占比超43%的内容管理系统,其生产环境部署已从‘能用’迈向‘稳、快、安’的工程标准。LEMP架构(Linux+Nginx+MySQL+PHP)凭借Nginx事件驱动模型与PHP-FPM进程池协同机制,在高并发场景下显著优于传统LAMP,实测QPS提升2.3倍、内存占用下降41%。Ubuntu 22.04 LTS因长期支持、软件版本契合(Nginx 1.18+/PHP 8.1/MySQL 8.0)及丰富运维生态,成为WordPress部署事实上的黄金基线。本文聚焦真实建站全流程——从

weixin_33842304的博客 476

nginx由浅到深完全掌握

1、nginx解读: Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。 Nginx相对于Apache优点: 1)高并发响应性能非常好,官方Nginx处理静态文件并发5w/s 2)反向代理性能非常好。(可用于负载均衡) 3)内存和cpu占用率低。(为Apache的

IT99qky的博客 1268

vLLM企业级部署:集成LDAP/AD实现统一身份认证与权限管控

在企业级AI应用部署中,统一身份认证与权限管理是保障安全与合规的核心基础。LDAP(轻量级目录访问协议)作为广泛采用的企业身份管理标准,通过集中式目录服务实现用户、组和权限的统一管理。其工作原理是通过树状目录结构存储身份信息,支持绑定、搜索等操作进行身份验证。将LDAP与大模型推理引擎集成,能够实现单点登录(SSO)、组织架构自动同步和自动化生命周期管理,极大提升企业IT治理效率与安全性。本文以高性能大模型推理引擎vLLM为例,深入探讨如何通过API网关层集成方案,将vLLM服务无缝对接企业现有LDAP/A

weixin_30786657的博客 426

SQL注入攻防全解析:从基础原理到WAF绕过实战

SQL注入是一种将恶意SQL代码插入到应用程序数据库查询中的攻击技术,其核心原理在于应用程序未对用户输入进行充分验证或过滤,导致攻击者能够操纵原始查询逻辑。这种漏洞的危害性极大,可能导致数据泄露、篡改甚至服务器被控制。在Web安全领域,SQL注入长期位列OWASP Top 10威胁前列,是开发者和安全工程师必须掌握的基础攻防知识。为应对此类威胁,Web应用防火墙(WAF)应运而生,它通过分析HTTP/HTTPS流量并匹配规则库来识别和阻断攻击。然而,攻防博弈从未停止,攻击者常利用大小写变换、特殊字符编码、等

cqwmy840702的博客 408

nginx长连接——keepalive

参考:https://www.cnblogs.com/grimm/p/13038577.html nginx之 tcp_nopush、tcp_nodelay、sendfile 三个参数详解 当使用nginx作为反向代理时,为了支持长连接,需要做到两点: 从client到nginx的连接是长连接 从nginx到server的连接是长连接 1、保持和client的长连接: 默认情况下,nginx已经自动开启了对client连接的keep alive支持(同时client发送的HTTP...

JineD的博客 9249

从SQL注入到域控:一次完整的内网渗透实战剖析

SQL注入和文件上传是Web安全领域最经典的高危漏洞,其原理在于应用程序未对用户输入进行充分过滤或验证,导致攻击者可执行恶意SQL查询或上传有害文件。这些漏洞的技术价值在于,它们往往是攻击链的初始突破口,能直接导致数据泄露或服务器权限沦陷。在真实的网络攻防场景中,攻击者常将此类Web漏洞与权限提升、横向移动技术结合,构建从外网到内网、直至控制核心域环境的完整攻击路径。本次实战通过SQL注入绕过WAF、文件上传组合利用获取Webshell,并进一步利用Cron任务提权、内网隧道搭建、凭证窃取与哈希传递等红队技

蓝色妖姬 945

Nginx - 缓慢的 HTTP 拒绝服务攻击

当客户端发送的请求体数据小于或等于指定大小时,

飞询 2112

Python密码安全实践:使用Passlib实现企业级哈希与无缝算法升级

在用户认证系统中,密码哈希是保障数据安全的核心技术。其原理是通过单向加密函数将用户密码转换为不可逆的固定长度字符串,并引入盐值(Salt)抵御彩虹表攻击。现代密钥派生函数(KDF)如bcrypt和argon2通过增加计算成本(时间与内存开销)大幅提升暴力破解难度,其技术价值在于为密码存储提供主动防御层。在Python开发中,Passlib库封装了这些复杂的安全细节,提供了统一的API和CryptContext策略管理器,使得开发者能够轻松实现安全的密码哈希处理,并支持在用户登录时无缝完成从sha256_cr

weixin_30682415的博客 423

MinIO生产级安装与配置避坑指南:Windows/Linux集群实战

对象存储是现代云原生架构的核心基础设施,其核心原理在于通过分布式哈希与纠删码实现高可用与强一致性。MinIO作为兼容S3协议的高性能开源实现,凭借轻量部署、低延迟和企业级安全能力,成为替代NAS、FTP及私有云存储的首选方案。技术价值体现在无需依赖Hadoop生态即可提供生产就绪的元数据管理、TLS加密、审计日志与多租户隔离。典型应用场景包括AI训练数据湖、医疗影像归档、CI/CD制品仓及等保合规文件中台。本文聚焦MinIO安装与配置两大高频痛点,结合Windows服务注册、Linux二进制升级、集群纠删码

weixin_30684743的博客 333

Ubuntu 20.04 LEMP栈部署实战:Nginx+PHP+MySQL协同配置与故障排查

LEMP栈是Linux环境下Web服务的核心技术组合,指Linux操作系统、Nginx Web服务器、MySQL数据库与PHP编程语言的集成运行环境。其核心原理在于通过FastCGI协议实现Nginx与PHP-FPM进程间高效通信,并依赖MySQL socket或TCP连接完成数据持久化。该架构凭借Nginx的异步非阻塞I/O模型和PHP-FPM的进程管理机制,在高并发场景下展现出显著的内存与CPU资源优化优势。典型应用场景包括WordPress、Laravel等PHP框架驱动的动态网站、API服务及中小规

weixin_34357887的博客 384

Ubuntu 20.04 Postfix 配置实战:突破 socket 激活与 AppArmor 陷阱

邮件传输代理(MTA)是 Linux 系统关键基础设施,其核心在于配置的精确性与系统级协同。Postfix 作为主流 MTA,其行为不仅取决于 main.cf 参数,更深度耦合 systemd 服务模型、AppArmor 安全策略及网络栈治理逻辑。在 Ubuntu 20.04 这一 LTS 发行版中,socket 激活机制默认启用、文件权限受强制访问控制约束、IPv6 支持默认开启等特性,使‘能装’不等于‘可用’。真实运维痛点集中于配置失效、静默拒绝与审计不合规——如 inet_interfaces 设为

congxian2511的博客 385

大模型输出安全风险:从提示注入到RCE攻击链的深度解析与防御

在人工智能与软件工程深度融合的背景下,大语言模型(LLM)的代码生成与自然语言理解能力正被广泛应用于自动化运维、智能编程助手等场景。其核心原理是基于海量数据训练,通过概率预测生成符合上下文语义的文本序列。然而,这种强大的生成能力也带来了新型安全挑战:当模型输出被下游系统无条件信任并执行时,就可能构成严重的安全漏洞。从技术价值看,理解并防御此类风险是确保AI赋能业务稳健发展的基石。在应用场景中,攻击者可通过“提示注入”等技术,诱导模型生成包含恶意代码或危险指令的输出,例如在代码生成中引入远程代码执行(RCE)

weixin_33976072的博客 323

网络安全实入门| 剖析HTTP慢速攻击(Slowloris)与Nginx防护配置

通过调整TCP窗口大小(如设置为512字节),强制服务器将大文件拆分为多个小包发送,客户端以极低速率接收,导致响应数据长期滞留服务器内存。:利用HTTP协议对请求完整性的依赖,例如不发送完整的请求头(如缺少\r\n\r\n。监控连接数和请求速率,自动封禁异常IP(如连续发送未完成头部的IP)。(如100MB),随后以极慢速度发送数据体(如每10秒发送1字节)。:设置接收完整HTTP头部的超时时间(如10秒),超时则断开连接。:限制请求体的传输时间(如20秒),防止Slow Body攻击。

Memory_mumu的博客 1389

团子杂记:SAP收入确认工具RAR(Revenue Recognition&Reporting)在新收入准则下的应用

SAP收入确认工具RAR知识分享

Lucas1211的博客 4284

Go-ldap-admin安全加固实战:从零信任网络到纵深防御配置指南

LDAP(轻量级目录访问协议)作为企业身份管理的核心基础设施,其安全性直接关系到整个IT系统的稳定。其工作原理是通过树状目录结构存储和访问用户、组等身份信息,实现统一的认证与授权。在数字化转型背景下,确保LDAP管理后台的安全具有极高的技术价值,能有效防止数据泄露和未授权访问,是零信任安全架构落地的关键环节。应用场景广泛覆盖金融、政务、企业内网等对身份安全要求极高的领域。本文聚焦于现代化LDAP管理工具Go-ldap-admin,深入探讨如何通过实施最小权限原则、强制TLS加密、配置精细化访问控制列表(AC

weixin_33778544的博客 487

AI工程化之生成式UI & A2UI(二)

本文介绍了生成式UI框架A2UI的架构设计与核心实现。项目采用AI协作开发模式,通过ATDD(AI驱动的测试驱动开发)确保代码质量。前端SDK基于zustand实现框架无关的状态管理,包含协议解析器、存储管理、渲染器等核心模块。重点展示了基础store构建、A2UI协议解析器的实现过程,包括mock数据准备、测试用例生成和可视化调试。项目采用monorepo管理,利用vite实现高效开发构建。整个系统设计遵循模块化原则,通过清晰的接口定义实现各组件解耦,为后续功能扩展打下基础。

qq_34306228的博客 407

FreeGPT WebUI终极安全配置指南:从网络隔离到运行时防护

在部署AI应用时,安全配置是保障服务稳定与数据隐私的基石。其核心原理在于通过多层防御体系,最小化攻击面并控制访问权限。从技术价值看,这不仅防止未授权访问和资源滥用,更是保护模型资产与用户数据的关键。尤其在容器化部署与反向代理成为主流的今天,合理的网络隔离、强制HTTPS与身份认证,构成了Web应用的基础安全框架。这些通用实践在AI聊天应用如FreeGPT WebUI、Ollama WebUI等场景中尤为重要,能有效防范API密钥泄露、模型滥用等风险。本文聚焦于此类开源项目的安全加固,系统梳理从Docker容

weixin_33898233的博客 556

利用ANSYS随机振动分析功能实现随机疲劳分析

本文介绍了ANSYS随机振动分析功能,以及利用该功能,按照Steinberg提出的基于高斯分布和Miner线性累计损伤定律的三区间法进行ANSYS随机疲劳计算的具体过程。在工程应用中,汽车、飞行器、船舶以及其它各种机械或零部件,大多是在随机载荷作用下工作,当它们承受的应力水平较高,工作达到一定时间后,经常会突然发生随机疲劳破坏,往往造成灾难性的后果。因此,预测结构或零部件的随机疲劳寿命是非常有必要的。在工程界,疲劳计算广泛采用名义应力法,即以S-N曲线为依据进行寿命估算的方法,可以直接得到总寿命。

qq_38220914的博客 7614

基于Xilinx的I2S Receiver IP核和I2S Transmitter IP核音频验证

基于Xilinx的I2S Receiver IP核和I2S Transmitter IP核音频验证 文章目录前言一、工程构架二、Xilinx IP的配置1.I2S Transmitter IP配置:2.I2S Receiver IP配置:3.WM8960的配置:总结 前言 本实验基于Xilinx ZU4EV平台,也适用于ZYNQ平台。音频验证完成,记录调过程。 ①Xilinx 音频IP只支持主模式,左对齐或右对齐方式,16bit或24bit字长。 ②WM8960器件作为从模式;24bit字长;数据传输格

weixin_45637597的博客 6815

网络安全实践:Qwen3-ASR-0.6B服务端部署的安全加固与防护

本文介绍了在星图GPU平台上自动化部署Qwen3-ASR-0.6B轻量级高性能语音识别模型WeBUI镜像的网络安全实践。该镜像可用于构建语音转文字服务,本文重点阐述了如何通过配置WAF、API认证、文件校验及日志监控等分层防御策略,为公开部署的语音识别服务提供安全加固与防护。

weixin_42524864的博客 28

STM32G474多通道ADC电压采集:软件触发与单次转换实战

本文详细介绍了STM32G474多通道ADC电压采集的实战方法,重点讲解了软件触发与单次转换的实现技巧。通过硬件设计、HAL库配置、多通道轮询采集及数据处理等环节的详细解析,帮助开发者高效完成精确电压采集任务。文章还提供了常见问题调试技巧和性能优化建议,适用于需要高精度电压监测的嵌入式应用场景。

weixin_28720767的博客 465
上一篇: 什么?2025年了发版后还要手动清浏览器缓存?
下一篇: 作为前端开发,感受下 nginx 带来的魅力![特殊字符][特殊字符]
程序员职业指南
博客等级 码龄4年 2138粉丝 960原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值