Мой сайт сильно пострадали от спам-ботов и парсеров. Я использовал 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-адреса?