Назад | Перейти на главную страницу

500 000 запросов GET к случайному jpeg в день (Apache)

Итак, я получаю это в моем журнале Apache на небольшом сервере для местной компании:

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

около 500 000 раз в день с 150 000 уникальных IP-адресов. Я перенаправил этот трафик за пределы своего сайта (отсюда и 301), потому что это приводило к сбою сервера. Но он все еще использует некоторую пропускную способность. Как лучше всего исправить эту ситуацию?

Эта проблема называется хотлинкингом изображений.

Nginx можно настроить различными способами, чтобы защитить вас от него. Прочтите об этом здесь:

http://www.htpcbeginner.com/image-hotlink-protection-nginx/

http://nginxlibrary.com/hotlink-protection/

http://nodotcom.org/nginx-image-hotlink-rewrite.html

Проблемы с защитой от хотлинков Nginx

Как вы говорите, около 150 000 IP-адресов попадают в него 500 000 раз, то есть примерно по 3 раза каждый. Имея это в виду, вы также можете добавить браузерное кеширование таких статических файлов jpeg в микс, чтобы избежать 66% запросов. Обслуживание статических файлов из так называемого домена без файлов cookie экономит еще немного.

Еще один способ - запретить IP-адреса на уровне брандмауэра, например, с помощью Fail2Ban. Если вы забаните каждый после первой загрузки этого файла, это сэкономит вам 66% запросов. Поскольку он никогда не достигает вашего веб-сервера, это экономит много ресурсов. Но это не останавливает его у источника.

Защита от ссылок на основе рефереров идеальна, и когда вы ведете список таких рефералов, вы можете попросить их прекратить использование ссылок, чтобы проблема, надеюсь, исчезла через некоторое время.

В apache вы можете довольно легко остановить хотлинкинг:

https://wiki.apache.org/httpd/DisableImageHotLinking