limit_req导致503服务不可用

当我打开limit_req时,我经常得到503 Service Unavailable 。 在我的日志中:

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

我的nginxconfiguration:

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

我该如何解决这个问题。 60米已经不够大了? 我所有的静态文件都托pipe在亚马逊S3上。

只要您达到限制请求,就会返回503 Service unavailable 。 来自limitreq文档 :

如果请求的速率超过为某个区域configuration的速率,则请求处理被延迟,例如它们以定义的速率处理。 过多的请求被延迟,直到它们的数量超过定义的突发数量。 超过时,请求将以错误503(服务暂时不可用)终止。 默认情况下,突发数量等于零。

你没有指定一个突发速率,所以当你每秒做超过5个请求时,你将得到HTTP 503 Service Unavailable作为回报。 尝试提高您的限制或指定更高的爆率。