Como impedir que bots sobrecarreguem meu aplicativo da web de desempenho lento?

2

Temos uma situação em que os bots compreendem 40% das solicitações de páginas para um aplicativo da web de desempenho lento.

Alívio de curto prazo

Como alívio imediato, pensei em fazer o seguinte:

  • Configurando outra instância do aplicativo apontando para uma cópia escrava do banco de dados. Chame isso de "Servidor B", enquanto o aplicativo principal é "Servidor A")
  • encaminhando todo o tráfego de bot para "Servidor B", encaminhe todas as outras solicitações para o aplicativo principal "Servidor A"

Separar, por servidor, o "tráfego de bots" do "tráfego de usuários" proporcionaria o benefício adicional da análise mais precisa do servidor (ou seja, sabendo que todo o tráfego é de "usuários reais" e não de bots). Além disso, poderíamos usar um servidor mais lento para "tráfego de bots" e dedicar mais recursos a "clientes de boa-fé",

Contexto

  • atualmente usando o apache 2.2 com o frontend mod_proxy.
  • O back end é o jboss / tomcat
  • Temos uma lista de cabeçalhos de bots mantidos manualmente (por exemplo, baidu, bingbot, googlebot, msnbot, etc.)

Pergunta:

  • É possível encaminhar solicitações do apache (ou mod_proxy) com base nos cabeçalhos (ou seja, encaminhar todas as solicitações com o baidu, googlebot, msnbot etc no cabeçalho para o ServidorB, todas as outras para o Servidor A)

Por favor, compare com outras sugestões

Obrigado antecipadamente

    
por user50460 28.06.2012 / 17:44

2 respostas

2

Correndo o risco de receber uma votação negativa por não responder à sua pergunta:

  1. Você pode diminuir o Googlebot usando uma configuração nas Ferramentas do Google para webmasters.

  2. A maioria dos principais rastreadores oferece suporte à diretiva Crawl-delay no robots.txt para atrasá-los. O bot do Yahoo pode ser particularmente agressivo.

  3. Proiba os gostos do Baidu completamente no robots.txt. Eles não estão te fazendo bem.

  4. Pense em bots agressivos como ataques DOS e limite a frequência de solicitações de cada IP usando o IPTABLES ou o plugin mod_security para o Apache.

por 29.06.2012 / 00:02
1

Algumas sugestões:

  • Veja como usar o User-Agent para direcionar os bots (ou algo similar) para uma página estática, para que seu aplicativo não esteja gastando ciclos respondendo aos bots. Veja o guia de reescrita do mod que tem alguns exemplos
  • Está usando robots.txt uma opção? Essa pode ser a opção mais fácil para aliviar a carga no seu servidor. Adicionar outro servidor pode ser "caro" (em tempo e manutenção) e não seria minha primeira escolha.
por 28.06.2012 / 19:46