Как настроить Robots.txt или Apache, чтобы сканеры могли работать только в определенные часы? - PullRequest
5 голосов
/ 19 января 2011

Поскольку трафик распределяется неравномерно в течение 24 часов, я хотел бы запретить сканерам в часы пик и разрешить их в нерабочие часы.

Есть ли способ добиться этого?

редактировать: спасибо за все полезные советы.

Это еще одно решение, которое мы нашли.

На сайте 2bits.com есть статья о настройке брандмауэра IPTables для ограничения количества подключений с определенных IP-адресов.

thearticle

настройка IPTables:

  • Использование connlimit

В более новых ядрах Linux существует модуль connlimit для iptables.Его можно использовать следующим образом:

iptables -I INPUT -p tcp -m connlimit --connlimit-вышеуказанный 5 -j REJECT

Это ограничивает количество соединений с каждого IP-адреса не более 5одновременные подключения.Этот тип «рационирует» соединения и предотвращает одновременное попадание сканеров на сайт.*

Ответы [ 5 ]

6 голосов
/ 19 января 2011

Вы не можете определить, в какое время сканеры выполняют свою работу, однако с помощью Crawl-delay вы можете уменьшить частоту, с которой они запрашивают страницы. Это может быть полезно для предотвращения быстрого запроса страниц.

Например:

User-agent: *
Crawl-delay: 5
3 голосов
/ 22 января 2011

Вы не можете контролировать это в файле robots.txt. Возможно, что некоторые сканеры могут поддерживать что-то подобное, но ни один из крупных не поддерживает (насколько я знаю).

Динамическое изменение файла robots.txt также является плохой идеей в таком случае. Большинство сканеров кэшируют файл robots.txt в течение определенного времени и продолжают использовать его, пока не обновят кэш. Если они кешируют его в нужное время, они могут ползти нормально весь день. Если они кешируют его в «неправильное» время, они вообще перестанут сканировать (и, возможно, даже удалят проиндексированные URL из своего индекса). Например, Google обычно кэширует файл robots.txt на день , что означает, что изменения в течение дня не будут видны роботу Googlebot.

Если сканирование вызывает слишком большую нагрузку на ваш сервер, вы можете иногда настроить частоту сканирования для отдельных сканеров. Например, для Googlebot вы можете сделать это в Google Webmaster Tools .

Кроме того, когда сканеры пытаются сканировать во время высокой нагрузки, вы всегда можете просто предоставить им 503 код результата HTTP . Это говорит сканерам о необходимости повторной проверки позже (вы также можете указать HTTP-заголовок retry-after, если вы знаете, когда они должны вернуться). Хотя я стараюсь избегать этого строго по времени (это может блокировать многие другие функции, такие как файлы Sitemap, контекстная реклама или проверка веб-сайта и может замедлить сканирование в целом), в исключительных случаях это может имеет смысл сделать это. В долгосрочной перспективе я настоятельно рекомендую делать это только тогда, когда нагрузка на ваш сервер слишком велика, чтобы успешно возвращать контент сканерам.

2 голосов
/ 19 января 2011

Это невозможно при использовании некоторого синтаксиса robots.txt - функции просто нет .

Вы могли бы иметь возможность влиять на сканеры, фактически изменяяфайл robots.txt в зависимости от времени суток.Я ожидаю, что Google, например, проверит файл непосредственно перед сканированием.Но очевидно, что существует огромная опасность отпугнуть сканеров навсегда - риск того, что это, вероятно, более проблематично, чем любая нагрузка, которую вы получаете прямо сейчас.

0 голосов
/ 27 января 2016

Сначала пусть будет ясно:

Цитата

Динамическое изменение файла robots.txt такжеплохая идея в таком случаеБольшинство сканеров кэшируют файл robots.txt в течение определенного времени и продолжают использовать его, пока не обновят кэш.Если они кешируют его в нужное время, они могут ползти нормально весь день.Если они кешируют его в «неправильное» время, они вообще перестанут сканировать (и, возможно, даже удалят проиндексированные URL из своего индекса).Например, Google, как правило, кэширует файл robots.txt на день, а это означает, что изменения в течение дня не будут видны роботу Googlebot.ответил 22 января '11 в 14:25 Джон Мюллер

В течение недели я пытался выполнить работу хрон, переименовывая файл robot.txt.Как выключатель.Он работает, скажем, каждый понедельник в полночь переименовывает «robot.txt» в «def-robot.txt», который теперь не блокирует сканеры.Я разрешаю два-три дня, затем у меня есть другое задание по расписанию, чтобы переименовать его обратно в «robot.txt» для «def-robot.txt», который теперь начинает блокировать любой сканер от доступа к моим сайтам.Так что это долгий способ сделать это, но первое упомянутое именно то, что происходит со мной.

У меня было значительное снижение, если не все, в моих проиндексированных ссылках, потому что робот GoogleBot не смог проверить ссылку на неподвижноебыть правильным, потому что "robot.txt блокирует доступ Google к моему сайту пол недели. Простой. Планирование работы Chron для изменения файла на нужные вам настройки может сработать кое-что. Это единственный найденный способ настроить robot.txt назапланированное время базы.

0 голосов
/ 19 января 2011

Я не думаю, что вы можете назначить встречу с пауком поисковой системы.

...