Como posso configurar o nginx para servir uma página de “servidor sobrecarregado” ou fora da capacidade?

1

Eu tenho um cliente que está esperando um plug na TV nacional hoje à noite, e eles apenas me disseram (amor como isso funciona, hein?). Estou tentando fazer algum planejamento de capacidade no pouco tempo que tenho, e a única coisa que acho que deveria tentar seria uma forma de página "fora de capacidade".

A ideia é (a) definir um limiar que diz "isto é o que significa sobrecarregado", (b) comparar a carga atual com [a] em cada requisição, e se a carga atual > = [a], ( c) mostre uma página 503.

O problema é que eu não tenho ideia do que isso é comumente conhecido, então as pesquisas do Google mostraram muito pouco. Eu sei de mod_qos para o Apache, mas este cliente está no nginx, e eu não consegui encontrar um equivalente para o nginx.

Qualquer ajuda seria muito apreciada. Obrigada!

    
por Jonathan Brumhauer 15.07.2011 / 00:00

2 respostas

2

Não existe um equivalente exato para o Nginx porque não é realmente necessário. Nginx em si não será o seu gargalo, isso é quase garantido.

Isso não quer dizer que você não terá problemas, no entanto. Muito provavelmente, o back-end atingirá o pico da CPU ou a largura de banda ficará esgotada para atender aos arquivos. O Nginx é um proxy reverso HTTP, no entanto, ele não quer monitorar as coisas e eu acho que isso se reflete no tipo de módulos que as pessoas escrevem para ele.

Você basicamente tem duas opções disponíveis para você. Se o seu back-end estiver configurado corretamente para permitir que apenas alguns processos sejam executados, você nunca ficará sem memória e sua CPU não estará muito ocupada, então você pode simplesmente definir uma página de erro para o erro de tempo limite de gateway 504 e diga às pessoas que você está sobrecarregado e tente recarregar um pouco.

Se você fizer o balanceamento de carga e preferir o próprio nginx para limitar as solicitações, use um dos módulos de terceiros . como EyBalancer ou HTTP Health Check, embora eu não possa dar detalhes sobre como eles lidam com a sobrecarga.

    
por 15.07.2011 / 00:34
0

Isso deve fazer o que você está solicitando quando o sistema começa a falhar: error_page 500 502 503 504 /50x.html; Basta fazer com que a página 50x.html veja como você gosta.

Você pode ser melhor apenas ter alguma forma de loadbalancing ou failover que adicione outro servidor web. Algumas das implementações na nuvem seriam boas para isso, se você acredita que isso acontecerá com mais frequência.

    
por 15.07.2011 / 23:28