Блокировать множественные запросы на удаленный файл

Блокировать множественные запросы на удаленный файл

Я разместил файл JavaScript на своем сервере, работающем под управлением Wordpress на Nginx. Я удалил файл, но все еще есть несколько запросов от нескольких рефереров. Эти рефереры с разных URL и IP-адресов.

Запросов ОЧЕНЬ много, и я хочу их заблокировать, так как они, похоже, влияют на производительность моего сервера.

Можно ли как-то заблокировать эти запросы?

решение1

Я полагаю, что вы получите прирост производительности, если явно настроите nginx так, что расположение старого javascript больше не является допустимым, поскольку nginx больше не придется проверять файловую систему, а при отправке ошибки 410 ему также не придется отправлять страницу ошибки 404:

location /path/to/script.js {
return 410 ; 
}

Код статуса HTTP 410: Ушел

Запрошенный ресурс больше не доступен на сервере, и адрес пересылки неизвестен. Ожидается, что это состояние будет считаться постоянным. Клиентам с возможностями редактирования ссылок СЛЕДУЕТ удалять ссылки на Request-URI после одобрения пользователя. Если сервер не знает или не имеет возможности определить, является ли состояние постоянным, вместо этого СЛЕДУЕТ использовать код состояния 404 (Не найдено). Этот ответ кэшируется, если не указано иное.

Ответ 410 в первую очередь предназначен для помощи в задаче обслуживания веб-сайта путем уведомления получателя о том, что ресурс намеренно недоступен и что владельцы сервера желают, чтобы удаленные ссылки на этот ресурс были удалены. Такое событие является обычным для ограниченных по времени, рекламных услуг и для ресурсов, принадлежащих лицам, которые больше не работают на сайте сервера. Не обязательно отмечать все постоянно недоступные ресурсы как «исчезнувшие» или сохранять отметку в течение какого-либо периода времени — это остается на усмотрение владельца сервера.

решение2

location = /deleted.js {
    default_type    text/plain;
    return      410 "410";
    #access_log off;
}

Вы можете либо отключить журнал доступа, как указано выше, либо, если вы используете достаточно новый nginx, настроитьaccess_logдля буферизации. Доступ к диску обычно очень дорогой, и, скорее всего, именно он вас и замедляет.

Кстати, использование returnautomatic подразумевает log_not_found off;, так что это уже лучше, чем просто доверить vfs генерацию 404.

решение3

Это идея использования строкового модуля iptable для проверки содержимого http-заголовка, конечно, ее необходимо адаптировать к вашему особому случаю:http://spamcleaner.org/en/misc/w00tw00t.html

Однако я не совсем уверен, что будет быстрее: проверка всех входящих пакетов или обработка их вашим веб-сервером. В конечном итоге я бы просто добавил строку в конфигурацию сервера, чтобы немедленно возвращать 404 на этот конкретный URL; трафик со временем сам сократится, поскольку веб-мастера и поисковые системы исправят свои ссылки (и они это сделают, поскольку ошибки 404 приведут к плохому позиционированию в современных поисковых системах).

Связанный контент