Eu trabalho em um ISP e quando o crédito de um usuário é zero, todas as solicitações HTTP NAT ao meu servidor web (Apache 2.2) para pagamento.
Se o downloader ou o programa de atualização automática do usuário estiver em execução, todas essas solicitações chegarão ao meu servidor web e essa ação fará com que 75% das respostas do Apache sejam 404.
Quero limitar, armazenar em cache ou descartar esses pacotes de solicitações. Alguém tem uma solução? No nível do Apache, firewall ou roteador.
Responder1
Não existem boas soluções para este problema - o Apache precisa processar a solicitação para apresentar a mensagem "Pay Up, Sucker!" página. Qualquer coisa que você fizer que impeça que as solicitações cheguem ao Apache teria que acontecer na camada de rede, momento em que seus usuários não estariam mais recebendo a página do portal cativo e, em vez disso, ligariam para o seu helpdesk gritando "ESTÁ QUEBRADO!"
Francamente, você não deveriaCuidadose o servidor do portal cativo estiver consumindo CPU/RAM/qualquer coisa - coloque a página de pagamento em uma caixa dedicada e deixe-a bater. As pessoas que estão acertando são caloteiros e se precisarem recarregar algumas vezes para acessar a página de pagamento, que assim seja.
Além disso, seu servidor de pagamento provavelmente não deveria retornar erros 404sempre-- Deve servir a página de pagamento para qualquer solicitação que receber, independente da URL...
Responder2
algumas opções:
use nginx ou outro servidor http 'leve' com configuração abrangente
use limitação de taxa baseada em iptables por IP de origem [palavras-chave para google: iptables hashlimit] e rejeite ou descarte silenciosamente a porcentagem indesejada de solicitações e passe apenas algumas.