500.000 solicitações GET para um jpeg aleatório por dia (Apache)

2

Então, estou recebendo isso no meu log do Apache em um servidor pequeno para uma empresa local:

1.2.3.4 - - [09/Nov/2015:17:00:16 +0000] "GET /wp-content/uploads/2012/08/gold-coins.jpeg HTTP/1.1" 301 342

cerca de 500.000 vezes por dia com 150.000 IPs exclusivos. Eu redirecionei esse tráfego para fora do meu site (daí o 301) porque estava travando o servidor. Mas ainda está usando alguma largura de banda. Qual é a melhor maneira de remediar esta situação?

    
por user321255 09.11.2015 / 18:30

2 respostas

3

Esse problema é chamado hotlinking de imagem.

O Nginx pode ser configurado de várias maneiras para protegê-lo. Leia sobre isso aqui:

link

link

link

Problemas na proteção de hotlink do Nginx

Como você está dizendo, cerca de 150 mil IPs atingiram 500 mil vezes, o que significa cerca de três vezes cada. Com isso em mente, você também pode adicionar o cache do navegador de tais arquivos jpeg estáticos na mistura, para evitar 66% das solicitações. Servindo arquivos estáticos de um domínio chamado cookieless salva outro bit.

Outra rota a considerar é a proibição de IPs no nível do firewall, por exemplo, com a ajuda do Fail2Ban. Se você banir cada um após o primeiro download desse arquivo, você economiza 66% dos pedidos. Porque nunca chega ao seu servidor, isso economiza muitos recursos. Mas isso não para na fonte.

A proteção de hotlink baseada em referrer é ideal, e quando você mantém uma lista de referenciadores, você pode pedir que eles parem de fazer hotlinking, para que o problema desapareça depois de um tempo.

    
por 10.11.2015 / 09:12
0

No apache, você pode parar o hotlink com bastante facilidade:

link

    
por 15.11.2015 / 13:06