Перегрузка сайта

Есть у меня еще один stand-alone блог, и с ним в выходные приключилась не очень приятная история. Сайт несколько раз автоматически блокировался за превышение лимита на использование системных ресурсов, или, говоря проще, перегрузку.

Перегрузка происходит тогда, когда один процесс захватывает один или несколько ресурсов на длительный срок, в результате чего другие процессы выстраиваются в очередь, и весь хостинг замедляет свою работу, и есть риск, что работа может остановиться. Чтобы этого не произошло, на хостингах производят периодические блокировки сайтов, занявших слишком много ресурсов, пишут гневные письма владельцам сайтов и грозятся разорвать договор, если причина перегрузки не будет устранена.

цепи

Причин перегрузки несколько:
— Чрезмерная активность поисковых роботов
— Высокая посещаемость ресурса
— Программные коды низкого качества

Среди файлов, размещенных на платном хостинге, всегда есть логи, в которых в простом текстовом формате записано, какой IP, когда, куда и с какой страницы заходил, так что первые две причины необходимо выявлять именно на основе логов, которые фиксируют как посетителей-людей, так и ботов. Проверка логов выявила, что мой сайт был заблокирован по первой и третьей причинам одновременно, отчасти, быть может, и по второй. Чересчур активные поисковые роботы полезли на страницу регистрации и входа на сайт, на который можно зайти не только с помощью обычной регистрации, но и с помощью плагина Loginza, который, видимо, оказался тяжелым, если его активизировать много раз одновременно.

Трудно сказать, сильно ли повлияла посещаемость сайта, но могла повлиять. Судя по логам, DDOS-атак не было, но изначально, создавая блог, я рассчитывала на посещаемость в 100-200 человек в день, однако она превысила мои ожидания, а в последние дни и вовсе достигла 2500. В моем блоге есть несколько докладов о космосе, которые вдруг всем понадобились в преддверии 50-летия Дня Космонавтики и немногим позже.

Установить причины проблемы — это полдела. Осталось применить меры. Плагин Loginza мне удалять не хочется, потому что он позволяет зайти в блог как по OpenID, так и с помощью распространенных ныне аккаунтов ВКонтакте, Facebook, Яндекс, Google, Twitter и других. Поэтому я прибегла к другой мере — установила лимит захода поисковых роботов в блог и закрыла от них страницу входа и регистрации.

Для этого нужно создать файл robots.txt, находящийся в корневом каталоге WordPress. Этот файл содержит указания для поисковых роботов. У меня уже был этот файл, он содержал запрет поисковым ботам заходить в админку. Осталось дополнить и разнообразить этот файл, и теперь он выглядит так.

User-agent: *
Disallow: /wp-admin
/wp-includes
/wp-login.php
Crawl-delay: 3

Строка User-agent содержит указания, для какие поисковых роботов действуют указания. Звездочка * означает, что они действуют на все боты.
Disallow — запрет на индексацию. Блокируем доступ к страницам, начинающимся с /wp-admin, /wp-includes, и к странице входа и регистрации.
Crawl-delay задает паузу в секундах для поисковых роботов.

Теперь файл robot.txt помещается в корневой каталог WordPress.

Кроме этого, рекомендуется установить плагин WP Super Cache, который генерирует статические html-файлы, периодически обновляемые, в результате чего тяжелые скрипты должны выполняться реже.

Добавить комментарий


Пятый элемент блогосферы © 2015