О Cloudflare я узнал когда зашел на один сайт и увидел вместо ожидаемой страницы я увидел вот такую вот картину:
Увидев новое слово, я тут же решил загуглить, я бы не сказал что информации по этому сервису изобилие, но её вполне достаточно для того, чтобы понять что такое Cloudflare. Правда я на тот момент плохо понимал как он может быть полезен именно мне, поскольку я не обладаю серьезными сайтами, которые нуждаются в снижении нагрузки. Но время шло и в какой-то момент мой сайт начал создавать нагрузку на хостинг, причем если раньше это были разовые пики, то в этот раз превышения были каждодневными и только благодаря терпению хостера мне не заблокировали аккаунт. Нагрузка не падала больше недели и я понял что надо что-то делать. Настройка WP Super Cache не спасала и я вспомнив про Cloudflare пошел добавлять туда сайт. Процесс добавления сайта подробно описан в этой статье.
Но простое добавление ситуацию никак не спасло, нагрузка на хостинг никак не изменилась. Я решил изучить функционал Cloudflare чуть по подробнее. Оказалось с помощью Page rules можно управлять кешированием, а именно, задавать время хранения страниц и файлов на серверах Cloudflare. Иными словами мы можем указать Cloudflare что и сколько времени хранить. При желании конечно можно посмотреть что именно создает нагрузку и кешировать именно то, но я решил не заморачиваться и создал вот такое правило на вкладке «Page rules»:
Тем самым я указал что нужно кешировать весь сайт и добавил три параметра:
- Browser Cache TTL — указывает браузеру сколько времени хранить полученные файлы. Я ставлю один день, поскольку браузер хранит даже страницы.
- Cache Level — тут мы указываем что Cloudflare должен кешировать. Я выбрал кешировать все.
- Edge Cache TTL — тут указываем сколько времени живет кеш на сервере Cloudflare.
После этих настроек на следующий день я увидел долгожданное падение нагрузки:
Пустой столбик в самом конце графика — это уровень нагрузки, по сравнению с предыдущими значениями он кажется ниже плинтуса. Но радость была не долгой. Неладное я почуял когда зашел в админку и увидел комментарий, который отправил в папку «Спам». Тогда я понял что страница сохранилась в кеше браузера и тут же я понял что эта же страница хранится и на Cloudflare. Открыв ссылку на админку в анонимной вкладке я увидел страницу админки. Конечно особо страшного в этом ничего нет, поскольку ссылки там «устаревшие» и на эти страницы можно только смотреть, но все равно было очень неприятно. В большей степени это мешало тем, что это не позволяло полноценно управлять сайтом, поскольку страницы админки загружались из кеша и было не понятно почему плагины не обновляются, спам не удаляется и т.д.
Тогда я понял что для админки необходимо кеш отключать. Для этого необходимо добавить в разделе Page Rules одно правило. Все по сути выглядит вот так:
Таким образом мы отключим кеширование для админки. Естественно это работает только в сайтом на вордпресс. Для других сайтов необходимо корректировать параметр в первом поле. Указываем необходимые параметры и жмем кнопку «Save and Deploy». Все готово. Мы настроили исключение для админки нашего сайта.
Управление кешем
Для тех, у кого сайт работает на популярных CMS, таких как WordPress, есть плагин для управления кешем сайта. Допустим вы внесли какие-то поправки во внешний вид сайта или отдельной страницы. Чтобы эти изменения появились на сайте, нужно сбросить кеш. Чтобы его сбросить, необходимо либо лезть на сайт Cloudflare, либо установить плагин.
Если у вас сайт работает на WordPress, то достаточно перейти в раздел «Плагины» и нажать кнопку «Добавить новый». В строке поиска просто ввести «cloudflare»/
Нас интересует самый первый плагин. Как видите он разработан командой Cloudflare. Устанавливаем его. После активации нам необходимо его настроить. Проходим в настройки плагина. Делается это просто, слева в разделе «Настройки» и там ищем «Cloudflare». Попав в раздел настроек плагина, указываем наш емейл, который является логином в Cloudflare и API key. Если с емейлом проблем нет, мы его вроде как знаем, а вот с API Key придется покопаться в Cloudflare. Для этого кликаем сайт в личном кабинете Cloudflare, затем внизу справа ищем ссылку «Get your API key».
Тут мы попадаем в раздел из которого нам надо перейти в другой раздел, который называется API Tokens.
В этом разделе напротив «Global API key» кликаем кнопку «View».
После этого нам необходимо указать пароль от нашего аккаунта и код с картинки.
После того, как мы ввели все необходимое и нажали кнопку «View», мы получим наш API Token. Нам останется скопировать его и вставить в поле в настройках плагина, а затем сохранить. Вот и все, теперь вы можете управлять некоторыми настройками сайта.
Допустим вы добавили на сайт новую статью. Заходим на страницу плагина Cloudflare, затем ищем «Purge Cache» и жмем кнопку с таким же названием, там выбираем «Purge Everything».
Советую всегда выбирать всегда «Purge Everything» за исключением случаев, когда изменения вносятся в содержимом отдельной страницы. Например если вы добавили новую статью, то нужно сбрасывать весь кеш. Поскольку кешируется практически все, в том числе и Sitemap, в котором долгое время не будет нашей новой статьи пока не обновится кеш. Тоже самое с блоками а-ля «Последние записи», «Похожие записи» в конце статей и т.д.
Один совет
Поскольку очень много ботов долбится в админку, в попытке взломать наш сайт и т.д. То само собой наша настройка, которая отключается кеширование всех запросов к админке, может несущественно увеличить нагрузку на наш сервер. Если вы замечаете что нагрузка все равно идет, то во время отсутствия работ в админке, просто отключайте правило, которое отключает кеширование запросов к админке.
Вот собственно и все, что я хотел вам рассказать. Эти не хитрые манипуляции позволят вам не съезжать с дешевого хостинга даже когда посещаемость вашего сайта превысит несколько тысяч посетителей в сутки.
Здравствуйте, Денис! Спасибо за полезную информацию. Но у меня вопрос: почему вы отказались от использования Cloudflare? С какими минусами вы столкнулись?
Здравствуйте, Наталья! Причиной отказа было наличие IP в реестре РКН. Мой сайт был недоступен для некоторых людей. Я боялся что это повлияет на поведенческие факторы. Неприятным минусом является отсутствие возможности контролировать кеширование средствами вордпресс. В частности неудобство заключалось в том, что в кеш попадала страница с админбаром, если я первый попаду на страницу будучи авторизованным. Если админку можно исключить, то в остальном проблемы.Для одного клиентского проекта я оставил Cloudflare, но без кеширования. Есть там фишки с фаерволом. С их помощью я включил проверку при попытке авторизации, чтобы исключить атаки по подбору пароля, а так же блокируются все, кто запрашивает те или иные файлы, которые не должен запрашивать обычный пользователь. У меня хостер недавно сделал установку и автоматическое продление сертификатов от Lets Encrypt, по этой причине отпала необходимость в SSL от cloudflare. Кеширование легко реализуется плагинами. Атак я не боюсь ибо админка просто закрыта от посторонних. В общем Cloudflare можно использовать когда это реально оправдано.
Добрый день,
если в Page Rules добавить https://сайт.ru/* cashe level bypass, весь сайт перестанет кэшироваться или только главная страница?
Весь сайт. Поэтому директива бесполезна
А если необходимо определенную страницу закэшировать, как прописать?
Прописать адрес этой страницы, это же очевидно. Если надо кешировать только главную, то указываем адрес главной страницы https://сайт.ru/ и так далее по аналогии.
Добрый день! Подключил сайт на движке DLE и установил правила Page Rules по вашему примеру. Все отлично, но перестали работать рейтинги на сайте (работающие через через AJAX или Java скрипты.. не силен в программировании) в общем выдает сообщение, что ваша пользовательская сессия закончилась и рейтинг статьи не меняется, полагаю также и с комментариями будет, как надстроить правила, чтоб именно скрипты и AJAX и тп работало, а все остальное загнать максимально в кеш? Благодарю за ответ!
Здравствуйте! Извиняюсь что долго не отвечал. В разделе Cache можно настроить правила для этого типа запросов