我尝试使用 nginx (http://nginx.org/) 来限制每分钟的请求数量。例如我的设置是:
server{
limit_req_zone $binary_remote_addr zone=pw:5m rate=20r/m;
}
location{
limit_req zone=pw nodelay;
}
我在 Nginx 中发现的是,即使我每分钟尝试 1 个请求,我也可以在那一分钟内多次返回。当然,快速刷新页面会给我限制页面消息,即“503 服务暂时不可用”返回码。
我想知道可以应用什么样的设置来将请求限制为每分钟 20 个请求。我不只是在寻找防洪保护,因为 Nginx 提供了这一点,例如,如果页面不断刷新,它会限制用户并在一段时间后让他们在一段时间后重新进入(除非你应用 nodelay 设置)。
如果除了 HAProxy 之外还有 Nginx 的替代品(因为它很慢)。我在 Nginx 上的设置也充当了真实站点的反向代理。