nginx 限频的 server 配置跟 location 配置类似,可以在 server 块中使用 limit_req_zone 和 limit_req 指令来实现。
下面是一个简单的示例:
http {
...
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
listen 80;
server_name example.com;
location /api/ {
limit_req zone=one burst=5 nodelay;
proxy_pass http://backend_server/;
}
}
}
其中,limit_req_zone 指令用于定义限速策略,limit_req 指令用于应用该策略。这里定义了一个名为 one 的限速策略,最大内存为 10MB,每秒钟只允许一次请求。
然后,在 server 中定义了一个名为 /api/ 的 location,并在其内部使用 limit_req 来应用上面定义好的限速策略。此外还有其他常见的参数可以设置,如 delay=Xs 来延迟 X 秒后再响应请求等。
注意:如果您需要在多个 location 中都使用相同的限速策略,则建议将其定义在 http 块中。




