在 Nginx 中,可以使用 ngx_http_limit_req_module 模块来进行请求限流的配置。
首先,在 Nginx 配置文件中找到对应的 location 或 server 块,然后在其中添加如下代码:
http {
...
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
server {
...
location /api/ {
limit_req zone=mylimit burst=20 nodelay;
# 处理 API 请求的配置
}
...
}
}
上述配置中,我们首先使用 limit_req_zone
定义了一个名为 “mylimit” 的共享内存区域,并指定了其大小和速率限制。这里将每个客户端 IP 地址作为键进行限制。在示例中,我们设置了每秒最多处理 10 个请求。
然后,在需要进行限流的位置(例如 /api/
),使用 limit_req
指令启用请求限制,并引用前面定义的 “mylimit” 区域。burst
参数表示突发量,即超过限制数量时允许处理的请求数量。nodelay
参数表示不延迟请求处理,而是立即返回 503 错误响应。
根据实际需求,你可以调整 rate
、burst
和其他参数以满足你的业务需求。记得重启或重新加载 Nginx 配置使修改生效。
内容由零声教学AI助手提供,问题来源于学员提问