nginx 限频可以通过 limit_req 模块来实现,具体配置如下:
- 首先在 http 块中添加以下配置:
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
}
其中,$binary_remote_addr 表示客户端 IP 地址的二进制格式,zone 是限速策略的名称,10m 表示该策略最多使用 10MB 的内存,rate=1r/s 表示每秒钟只允许一次请求。
- 然后在 server 或 location 块中添加以下配置:
location /api/ {
limit_req zone=one burst=5 nodelay;
...
}
其中 /api/ 是需要限速的路径,burst=5 表示如果有请求超出了限速,则可以缓冲 5 个请求,nodelay 表示不延迟请求。此外还可以设置 delay=Xs 来延迟 X 秒后再响应请求。
以上是一个简单的 nginx 限频配置示例,您可以根据自己的需求进行修改和调整。




