Usm*_*man 1 php proxy nginx limiting
我曾尝试使用 nginx (http://nginx.org/) 来限制每分钟的请求量。例如我的设置是:
server{
limit_req_zone $binary_remote_addr zone=pw:5m rate=20r/m;
}
location{
limit_req zone=pw nodelay;
}
Run Code Online (Sandbox Code Playgroud)
我在 Nginx 中发现,即使我每分钟尝试 1 个请求,我也可以在那分钟内多次返回。当然,快速刷新页面会给我一个限制页面消息,即“503 服务暂时不可用”返回码。
我想知道可以应用什么样的设置来将请求限制为每分钟 20 个请求。我并不是在寻找防洪保护,只是因为 Nginx 提供了这个功能,如果页面持续刷新,例如它会限制用户并在一段时间后让他们在延迟一段时间后返回(除非您应用 nodelay 设置)。
如果除了 HAProxy 之外还有 Nginx 的替代品(因为它很慢)。我在 Nginx 上的设置也充当了真实站点的反向代理。
正确的有2件事:
笔记:
由于您在下面声明您希望限制请求,因此您需要 limit_req 指令。特别是要每分钟最多获得 5 个请求,请尝试添加以下内容:
http {
limit_req_zone $binary_remote_addr zone=example:10m rate=5r/m;
}
server {
limit_req zone=example burst=0 nodelay;
}
Run Code Online (Sandbox Code Playgroud)
注意:显然将这些添加到您现有的 http/server 块中
| 归档时间: |
|
| 查看次数: |
5176 次 |
| 最近记录: |