limit_req 导致 503 服务不可用

limit_req 导致 503 服务不可用

我经常503 Service Unavailable在开机时收到此limit_req信息。在我的日志中:

[错误] 22963#0:*70136 限制请求,超出:1.000(按区域“blitz”),客户端:64.xxx.xxx.xx,服务器:dat.com,请求:“GET /id/85 HTTP/1.1”,主机:“dat.com”

我的 nginx 配置:

limit_req_zone $binary_remote_addr zone=blitz:60m rate=5r/s;
limit_req   zone=blitz;

我该如何解决这个问题。60m 还不够大吗?我所有的静态文件都托管在 amazon s3 上。

答案1

503 Service unavailable每次达到限制请求时都会返回。从limitreq 文档

如果请求速率超过为区域配置的速率,请求处理将被延迟,以便以定义的速率进行处理。过多的请求将被延迟,直到其数量超过定义的突发次数。超过时,请求将终止并出现错误 503(服务暂时不可用)。默认情况下,突发次数等于零。

您没有指定突发速率,因此,只要您每秒发出的请求数超过 5 个,您就会得到HTTP 503 Service Unavailable回报。请尝试提高您的限制或指定更高的突发速率。

答案2

标记的答案对我没有帮助,我的理由是爆裂

相关内容