%3F.png)
Tenho um site servido pelo Apache 2.4 com PHP-FPM. Algumas páginas demoram alguns segundos para serem geradas. De vez em quando, algum bot ou rastreador tenta baixar muitas dessas páginas de uma vez, processos PHP são gerados para todas as solicitações e o servidor fica muito lento porque fica sem memória.
Posso limitar o número de processos PHP ou o número de conexões simultâneas (e até mesmo o número de conexões simultâneas de um único IP com mod_qos), mas então solicitações adicionais (ou pelo menos solicitações adicionais desse IP) obtêm imediatamente um resultado 503. É possível manter as solicitações excedentes em um backlog e processá-las quando as solicitações anteriores terminarem?
Responder1
Instale um Nginx como proxy reverso e aplique a limitação de taxa, conforme este manual:https://www.nginx.com/blog/rate-limiting-nginx/
Não quero copiar todos os recursos descritos nessa página, há muitos e é melhor você mesmo ler. Essa é a página oficial do blog, então é improvável que vá.