Nginx - Limitando solicitações

Índice
Apesar que Nginx isto é orientado para o evento e que isso nos permite otimizar recursos para dar respostas rápidas e com menor consumo de recursos, há momentos em que não é suficiente e da mesma forma o serviço começa a falhar.
Quando isso acontece, a web começa a ter muitos erros de "Tempo esgotado", ou seja, muito tempo se passa desde a solicitação até Nginx puder atender, a solução imediata e recomendada é melhorar o hardware do servidor, seja mais RAM ou um processador melhor ou ambos, porém nem sempre isso é possível.
Limite
O limite que podemos estabelecer é reduzir a quantidade de memória que é consumida pelas solicitações e reduzir sua frequência, conseguimos isso criando uma zona usando uma sessão para poder saber quem vamos limitar em suas solicitações ao nosso serviço Nginx.
Vamos ver na imagem a seguir um exemplo de como podemos estabelecer essas zonas e limites:

Como funciona o limite?
O exemplo acima é muito fácil de entender, primeiro em nosso Bloco HTTP estabelecemos a zona, fazemos isso com limit_req_zone, que nos diz qual é a variável que vamos estabelecer para construí-lo, neste caso o binário de endereço IP remoto, ou seja, do cliente, é isso que servirá como valor identificador ou chave da sessão, então com zona estabelecemos o espaço que vamos atribuir a dita zona e por último a frequência de pedidos aceites, neste caso será um pedido por segundo.
Agora em nosso bloco de servidor com limit_req nós dizemos a ele que ele vai tomar a zona que estabelecemos no Bloco HTTP, isso nos permite estabelecer um número "infinito" de zonas, aqui o limite é a quantidade de memória que o equipamento onde hospedamos o serviço possui Nginx. Quando o limite de solicitação for atingido, os usuários verão um erro 503 serviço não disponível, evitando assim que a experiência de outros usuários sofra com o desempenho insatisfatório.
Chave de sessãoPodemos usar praticamente qualquer valor como uma chave de sessão, no entanto, é recomendado que seja usado um pequeno valor que possa ser acomodado na memória com todas as solicitações adicionais, de modo que multiplicando o total das conexões de entrada pelo valor do tamanho de todas as sessões sejam menor que o tamanho do cache de sessãoSe isso não acontecer, não poderemos utilizar o máximo das zonas que estamos estabelecendo, destruindo assim o propósito do que estamos construindo com os limites das solicitações.
Com isso finalizamos este tutorial, como vemos apesar do fato de que a ideia é sempre melhorar o desempenho do nosso serviço, Nginx Também nos oferece ferramentas que podemos usar quando nosso hardware não dá para mais, o que explicamos aqui deve ser um último recurso, mas há casos como servidores compartilhados que não podemos fazer alterações e que devemos apelar para isso tipo de solução.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave