Nginx 的 HttpLimitReqModule
模块用于限制客户端的请求速率,可以有效地防止恶意流量和请求过载的问题。以下是如何使用 HttpLimitReqModule
的详细步骤和示例。
1. 启用模块
-
如果你的 Nginx 安装支持
HttpLimitReqModule
(默认情况下启用),可通过以下命令检查:nginx -V
确认输出中没有
--without-http_limit_req_module
,说明模块可用。 -
如果模块不可用,请重新编译 Nginx。
2. 基本配置
配置 HttpLimitReqModule
包括以下两个核心指令:
limit_req_zone
定义请求限流的区域和速率。limit_req
将限流区域应用到特定的请求。
配置示例
在 Nginx 配置文件(如 /etc/nginx/nginx.conf
)中:
http {# 定义一个限流区域,限制每秒最多 10 个请求limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;server {listen 80;server_name example.com;location /api/ {# 应用限流规则limit_req zone=one burst=20 nodelay;# 代理到后端服务器proxy_pass http://backend_server;}}
}
3. 配置指令详解
3.1 limit_req_zone
用于定义限流区域。