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

Как заблокировать этот шаблон URL в Varnish VCL?

Мой сайт сильно пострадали от спам-ботов и парсеров. Я использовал Cloudflare, но проблема все еще существует. Проблема заключается в том, что спам-боты обращаются к несуществующим URL-адресам, вызывая большую нагрузку на мой бэкэнд drupal, который полностью загружается и загружает базу данных только для обслуживания документа с ошибкой 404.

Я не могу просто выдать 404, не относящиеся к Drupal, для всех ошибок, не найденных на странице, так как мне нужно, чтобы drupal их отлавливал. Так как varnish находится впереди, он может проверить, хорошо ли ведет себя бот и запрашивает действительный URL-адрес - если нет, он передает им 404 или 403. Эти боты вызывают ошибки, используя этот шаблон:

http://www.megaleecher.net/http:/www.megaleecher.net/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_Storage

Теперь, пожалуйста. предложить директиву regex varnbisg VCL, которая улавливает этот шаблон URL и обслуживает ошибку 404 от varnish, не позволяя ему достичь apache / drupal?

Вы пробовали искать URL-адреса, начинающиеся с / http?

if (req.url ~ "^/https?:") {
  error 404 "Not found" 
}

Думали ли вы о внедрении кеширования 404-х? Чтобы заблокировать их с помощью регулярных выражений, вам необходимо синхронизировать VCL и серверную часть, чтобы избежать блокировки действительных URL-адресов. Если вы просто кешируете 404-е в течение значительного времени, вам все равно нужно будет загружать из бэкэнда один раз для каждого URL-адреса, но при последующих запросах будет кешированная страница 404. Вы можете выполнить чистку вручную, если когда-нибудь добавите реальный контент в URL-адрес с кешированным ответом 404.

"Мой веб-сайт сильно пострадал от спам-ботов и парсеров",

Они исходят с одного и того же IP-адреса? Вы пробовали заблокировать IP-адреса?