limit_req causando 503 Serviço indisponível

2

Frequentemente recebo 503 Service Unavailable quando tenho limit_req ativado. Nos meus registros:

[error] 22963#0: *70136 limiting requests, excess: 1.000 by zone "blitz", client: 64.xxx.xxx.xx, server: dat.com, request: "GET /id/85 HTTP/1.1", host: "dat.com"

Minha configuração nginx:

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

Como resolvo esse problema? 60m já não é grande o suficiente? Todos os meus arquivos estáticos estão hospedados em um amazon s3.

    
por Jürgen Paul 07.09.2012 / 06:53

1 resposta

2

503 Service unavailable é retornado sempre que você atingir as solicitações de limite. A partir da documentação do limitreq :

If the rate of requests exceeds the rate configured for a zone, request processing is delayed such as that they are processed at a defined rate. Excessive requests are delayed until their number exceeds the defined number of bursts. When exceeded, the request is terminated with an error 503 (Service Temporarily Unavailable). By default, the number of bursts is equal to zero.

Você não especificou uma taxa de burst, portanto, sempre que fizer mais de 5 solicitações por segundo, você receberá HTTP 503 Service Unavailable em retorno. Tente aumentar seu limite ou especifique uma taxa de burst maior.

    
por 07.09.2012 / 08:56

Tags