Erro 403 (proibido) com muitas solicitações de arquivos

1

Estou escrevendo uma página da Web que exibe uma imagem svg. Um script java deve carregar muitas pequenas imagens em miniatura (cerca de 400) neste arquivo adicionando <image> tags. Como a saída de depuração dos navegadores mostra, nem todas essas miniaturas são carregadas. Muitos falham com 'Erro 403'.

As permissões dos arquivos de miniaturas estão corretas. Eu posso carregá-los individualmente com o navegador. O problema parece aparecer de forma consistente com vários navegadores.

Suspeito que estou enviando muitas solicitações de arquivos simultâneos. Eu provavelmente não posso ter acesso direto ao servidor, mas é provável que o apache2 esteja no linux. Existem parâmetros que controlam o número máximo de arquivos por cliente ou limites codificados (por exemplo, existe um parâmetro chamado MaxKeepAliveRequests ) ou existem outros problemas que podem causar esse comportamento?

Existe uma maneira de encontrar o IP do computador real executando o servidor (É claro que eu encontro o IP que o URL traduz, mas até onde eu vejo este computador não está executando o servidor real. A porta pode ser encaminhado)?

Embora isso possa estar fora do tópico: Existe uma solução de script java recomendada para resolver esses problemas ao carregar muitos arquivos?

Encontrei algumas configurações do apache que podem ser relevantes. Parece carregar mod_evasive . Poderia ser isso?

A configuração relevante é

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        10
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     3
    DOSBlockingPeriod   20
    DOSEmailNotify      ""
    DOSLogDir           "/var/log/apache2/mod_evasive.log"
</IfModule>
    
por highsciguy 20.08.2016 / 17:01

1 resposta

0

Parece um tipo de limitação de taxa. Existem vários módulos do apache que farão isso, mod_qos sendo um deles. Geralmente, eles retornam corpo curto, além do código 403 forbidden , com pouco mais detalhes, como link para Política de uso aceitável ou semelhante. Veja se o seu script de raspador pode mostrar que, além do código de erro 403. Também pode haver proxy reverso antes do apache fazer o limite.

Como solução, mantenha seu número de solicitações simultâneas no mesmo site baixo (se não 1). E obedeça robots.txt ! Anote também os Termos de Serviço do site de destino e Política de Uso Aceitável .

UPDATE sim, mod_evasive também fará isso. Você pode desativá-lo (se tiver controle sobre o site) ou ajustar seus parâmetros. Especificamente no seu caso, ele será bloqueado se você fizer mais de DOSSiteCount solicitações em DOSSiteInterval time. Então você precisa aumentar o número permitido de solicitações ou diminuir sua velocidade de busca (limitando o paralelismo de download e / ou inserindo atrasos após cada um)

    
por 20.08.2016 / 20:36