CloudFlare — бесплатная защита сайта от DDoS-атак и ускорение его загрузки

Обновлено 24 декабря 2023 Просмотров: 141 921 Автор: Дмитрий Петров

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Кто не слышал про CloudFlare? Я слышал и даже подробно изучал возможности сервиса лет этак пять назад, наверное (когда задумывался об ускорении сайта). Вот только сейчас уже не скажу, что именно тогда меня остановило от того, чтобы этот сервис попробовать (не помню). Но это и не важно.

Важно же то, что в первый рабочий день после новогодних праздников мне таки пришлось подключить KtoNaNovenkogo.ru к CloudFlare и притом в авральном режиме (с выдиранием волос, литрами выпитого кофе и биением головой об стол). Сделать это пришлось из-за полной блокировки доступа к сайту (скорее всего путем Ддос атаки — по FTP доступ был возможен).

CloudFlare

Из меня администратор сервера аховый и по большому счету я мало что понимаю в тонкостях и разновидностях DDos атак (ни как их организуют, ни как от них грамотно отбиваться — кроме простейшего блокирование по IP). Когда с этим не сталкиваешься, то оно тебе и не надо.

Но по всему выходит, что в первый рабочий день после новогодних праздников меня ддосили, и ничего ни я, ни техподдержка хостинга с этим поделать не смогли. Нанимать фрилансера для решения проблемы было стремно. Хорошо хоть по телефону ребята с Инфобокса мне подкинули идею подключить CloudFlare (как один из вариантов решения проблемы) и я за эту идею ухватился как за соломинку.

На успех особо не рассчитывал (за несколько часов, нужных для сброса старых и прописывания новых NC адресов успел много чего узнать по теме и даже составил уже примерный план действий). Но к моему удивлению буржуйский чудо-сервис помог! Притом даже на бесплатном тарифе. Замечательно сработал режим защиты от DDos атаки. Честно — не ожидал. Был приятно удивлен. Да еще и сайт стал летать как на крыльях (хотя и раньше черепахой не был).

В общем — так не бывает, но все же случается...

Что такое Ддос и что такое CloudFlare?

Что такое Ddos? Ну, во-первых, это аббревиатура от «distributed denial of service». По-русски это звучит как распределенная атака, цель которой добиться от атакуемого сервера (группы серверов) отказа в обслуживании для посетителей сайта (сайтов). Сайт будет выдавать ошибку всем желающим на него войти.

Слово «распредленная» означает, что Ддос атака идет сразу со множества компьютеров в сети. Очень часто для этой цели используется так называемый ботнет, т.е. группа зараженных вирусами или другим способом взятых под контроль компьютеров. Владельцы входящих в ботнет компьютеров могут при этом даже не догадывать о том, что они кого-то атакуют (все происходит в фоновом режиме).

Физически это означает огромное количество запросов, совершаемых к серверу с разных IP адресов. Если адрес будет один или несколько, то его легко можно вычислить по логам или открыв страницу http://xxx.xxx.xxx.xxx/server-status (где x нужно заменить на IP вашего сервера, если он работает под Апачем). После чего проблем не составит подозрительные IP временно заблокирвовать, например, через файл .htaccess дописав в него строки (Ip замените на свои — строк с Deny from можно добавлять сколько угодно):

Order allow,deny
allow from all
Deny from 83.149.19.177
Deny from 87.228.80.49
Deny from 178.212.72.13

Какое-то время мне это помогало. Но настоящий Ddos так ни за что не отбить — просто не успеете выявлять повторы IP адресов, если атаковать будут с десятков и/или сотен хостов. У меня так и случилось. В итоге 7 часов полного дауна!

Первые два часа я общался с техподдержкой хостинга на предмет «помогите» — «не могем». Потом за пять минут подключил к сайту CloudFlare, еще за пару минут сменил DNS записи у своего регистратора доменных имен и часа четыре ждал, пока начнется проключение (DNS записи должны обновиться на всех ключевых NS серверах в сети). Полноценно сайт заработал только через сутки, примерно.

Что такое DDos? Это страшная вещь на самом деле. Чувствуешь свое полное бессилие и безысходность. Со стороны атакующих — это способ заработать (на шантаже или выполняя заказ конкурента). Постоянная защита от этого зла очень дорогая, но CloudFlare даже на бесплатном тарифе позволяет отбиться от слабо-средней Ддос-атаки.

У этого сервиса есть миллионы подключенных сайтов (около пяти миллионов) и разработчики сервиса всегда четко отслеживают с каких IP сейчас обычно атакуют и таким посетителям, например, можно показать капчу (боты вряд ли настроены на ее разгадывание) или проверить браузер на «человечность» у таких подозрительных IP. Да и сами по себе их распределенные по миру сервера неплохо разреживают атаку на отказ — просто эти запросы распределяются на разные сервера и сильно снижают силу атаки сводя все усилия «редисок» на нет.

Для более серьезной защиты от Ддос в CloudFlare нужно уже платить и не мало (200$). Но это все для очень серьезного бизнеса, где Ддос мощнее (денег вливаемых в это больше), но и средств у владельцев много больше. Нам с вами «за глаза» хватит тарифа PRO за 20$ или вообще бесплатного тарифа, на котором почти все есть (читайте об этом ниже).

Что такое CloudFlare? Это онлайн сервис, ведущий свою историю с 2009 года (он ровесник моему блогу). Это ни в коем разе не хостинг, хотя со стороны может показаться именно так. Это скорее надстройка над хостингом (что-то вроде кеширующего обратного прокси). После подключения сайта к этому онлайн-сервису у него меняется IP адрес и возникает такое ощущение, что вы сменили хостера, но это не так.

Хостинг вам будет по-прежнему нужен и работать с сайтом вы будете фактически так же, как и работали раньше. Будут некоторые нюансики, но суть останется прежней. CloudFlare же нужен для защиты (стабильной работы) и ускорения работы сайта.

К нему подключены уже более пяти миллионов сайтов по всему миру. Этот онлайн сервис владеет распределенной сетью дата-центров (более 120) по всему миру (с прошлого года и в Москве такой появился). Последнее особо приятно, ибо обеспечивает гораздо более быстрый отклик при обращении к сайтам с территории России (хотя страна у нас большая и центров надо строить больше).

Сеть дата центров CloudFlare распределенная по всем миру

Итак, CloudFlare владеет кучей серверов распределенных по всему миру. Зачем? Чтобы добавленные в него сайты грузились в браузерах посетителей как можно быстрее. Вся графика, CSS и джава-скрипт коды будут отдаваться с того дата центра, который ближе находится к данному посетителю вашего сайта. Посетитель зашел из Москвы? Значит в работу включится московский дата-центр. Из США? Значит графика и прочая статика будет отдаваться посетителю с ближайшего к нему узла Cloud Flare.

Одно это уже способно повысить среднюю скорость загрузки странниц вашего сайта. Но данный сервис имеет в своем загашнике еще несколько тузов и джокеров. Работая с миллионами сайтов и отражая ежесекундно атаки сервис имеет базу адресов, с которых сейчас чаще всего атакуют сайты. Одно это может даже на бесплатном тарифе служить первым эшелоном защиты от DDoS-атак (и на это не требуется тратить особо ресурсы и время).

Кроме этого сервис позволяет включить режим «под атакой» (Under Attack Mode), когда каждое обращение к сайту прерывается на 5 секунд для выяснения типа браузера, с которого осуществлялся заход. Как раз этот режим спас меня в описанной выше безвыходной ситуации. Да, при этом отсекаются все боты и часть легитимных пользователей (на вскидку трафик стал процентов на двадцать меньше), но это лучше чем полный отказ сервера в доступе.

По окончании Ддос-атаки этот режим можно будет отключить и выбрать подходящий уровень бдения. При повторении атаки его легко можно будет включить даже с мобильника сидя в метро (главное настроить мониторинг доступности вашего сайта, чтобы вовремя среагировать).

В общем, даже на бесплатном тарифе практически все что нужно уже есть. Даже можно сжимать на лету файлы CSS и джава скрипта (удалив из них пробелы), чтобы на капелюшечку увеличить скорость загрузки. Не поверите — на бесплатном тарифе в CloudFlare можно будет даже SSL к сайту подключить (перейти на шифрованный протокол передачи данных — https, к чему нас последнее время активно склоняет Гугл). Причем сервис предоставляет свой собственный бесплатный сертификат.

Фантастика какая-то, не правда ли? Сами посмотрите сравнительную таблицу тарифных планов (включая Free). Чума! Если ваш хостинг упадет (будут проблемы), то Cloud Flare будет отдавать в этот промежуток времени страницы сайта из своего кеша (и это работает — проверял остановкой сервака, но есть нюансы о которых обязательно читайте ниже, иначе не сработает). Может чего упустил из бесплатных прелестей, но и этого более чем достаточно (за так то).

Кстати, у сервиса этого нет партнерки, но в рунете есть масса конкурентов с сумасшедшими ценниками (например, защита от DDoS-атак в qrator стоит ого-го-го сколько). Поэтому когда будете читать на форумах или блогах отзывы о CloudFlare, то обратите внимание на зачастую очень тонкую работу этих конкурентов (возможности CloudFlare занижаются, а своего сервиса или надстройки — абсолютируются). Многие ведутся, но сервис однозначно из разряда «такого не может быть, но все же есть».

Нет, недостатки у него тоже есть. Какие? Ну, зачастую очень даже значимые:

  1. Вы когда прикрепляете свой сайт к CloudFlare, то он получает новый айпишник (что такое айпи?). Но вы на нем будете висеть не один. У меня, например, на бесплатном тарифе оказалось пяток соседей, один из которых тематики адалт. Это само по себе не есть хорошо, но гораздо хуже бывает, когда роскомнадзор заставляет провайдеров интернета блокировать доступ к сайту, а они (от большого ума или назло) блокируют все висящие на этом IP сайты (включая ваш ни в чем неповинный). Этой проблеме уже несколько лет и возможно, что наши «умные люди» отошли от блокировки по IP или Cloud Flare стал оперативно реагировать на такие вещи. Будем посмотреть.

    Чуть забегая вперед скажу, что я таки взял платный тариф ПРО и IP сменился (теперь у меня три соседа без особых видимых проблем — наверное тоже платники, не знаю). Проверить сайты на одном IP с вами можно на 2IP:

    Сайты на одном со мной IP адресе в CloudFlare

  2. Раньше можно было сетовать, что дата-центров нет в России, но сейчас в Москве появился. Возможно, что и в других крупных узлах моей необъятной родины они будут создаваться.

Что дает переход на тариф PRO в CloudFlare?

Как я уже сказал выше, купил PRO за 20$ в месяц (дороже хостинга получилось в полтора раза) и меня перевели (без моей просьбы — автоматом) на новый IP, где только три соседа и вполне себе легитимные.

Кроме этого на платном тарифе появилась возможность:

  1. Polish (вкладка «Speed» из верхнего меню) — сжимать на лету картинки перед их отдачей посетителям сайта (можно настроить вариант сжатия — без потерь или с потерями, но более сильно).
    Сжатие изображений через Polish в КлоудФлер
  2. Mirage — позволяет подгружать график на мобильных устройствах не сразу, а по мере прокрутки посетителем страницы. Кроме этого, изображения сжимают до реально требуемых размеров и только потом передаются пользователю в гаджет. Вроде как это здорово ускоряет работу сайта на мобильниках.

    Включаем ускорение страниц сайта на мобильных устройствах через Mirage

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

    Картинки сайта на мобильники подгружаются по мере прокрутки страницы

    Правда гугловский спидометр до включения Миража показывал (можно и другие сервисы измерения скорости сайта использовать):

    Скорость сайта после CloudFlare

    А сейчас существенно ниже дает оценку — ругается, что часть контента на первом экране не подгружается вовремя. Кто его поймет?

  3. Page Rules — на платном аккаунте появляется возможность задать более трех правил для страниц (а точнее — до 20). Зачем нужны эти правила? Например, именно они позволяют настроить кеширование не только статики, но и Html страниц сайта. Ну, и еще другие применения найдутся, но мне это нужно только для описанной цели. Как настроить полное кеширование сайта (включая текст страниц, а не только картинок, скриптов и стилей) читайте ниже.
  4. Web Application Firewall — на платном аккаунте можно активировать (на вкладке «Firewall» из верхнего меню) базовый набор защиты от различных атак типа межсайтового скриптинга (XSS) и SQL инъекций. Вся подобная активность будет отсекаться (фильтроваться) еще на
    CloudFlare (не доходя до реального хостинга). Можно еще свои правила добавить, но я в этом не силен, посему ограничился стандартным (проверенным временем и миллионами сайтов) набором.
  5. Можно будет еще на платном акке сделать свой дизайн для страниц с различными ошибками. Например, когда вы включаете режим «Под атакой» (Under Attack Mode), то всем новым посетителям сайта будет показывать сообщение о том, что идет проверка их браузера на предмет «человечности» (если Серч читаете, то могли у них такую надпись видеть в течении последнего года, после подключения ими Cloud Flare).

    Сайт под защитой CloudFlare

    Табличка эта на буржуйском языке и часть посетителей могут просто сбежать. А вот если написать что-то типа «Ребят, ребят, ребят! Не уходите! Буквально 5 сек и все будет!», то шанс удержать посетителя увеличится. Я пока все ленюсь этим заняться...

Тариф я оплачиваю через Пейпел, что весьма удобно. При настройке платежей меня попросили привязать к счету в Пейпеле пластиковую карту, но деньги снимались не с карты, а непосредственно с самого кошелька (я в него вывожу доходы с мобильного приложения WhaffRewards). Прикольно, что каждый последующий месяц платеж происходит без моего участия — деньги автоматом списываются с Пайпаловского кошелька в день оплаты, что очень удобно.

Оплата тарифа Pro в КлоудФлер через Пайпал

Оно и не мудрено, ибо Пайпал позволяет в течении полутора месяцев опротестовать платеж, если что.

Как подключить свой сайт к CloudFlare?

Ну, тут, кстати, все довольно просто, если мастер подключения сможет вытянуть все нужные настройки для переноса вашего сайта (его IP, Ms записи). Однако, обо всем по порядку.

Заходите на Cloud Flare и регистрируетесь (пароль храните как зеницу ока, ибо это ключ к вашему сайту).

Сразу оговорюсь, что бояться особо нечего, ибо при неудачном подключении вам не придется ждать сутки, пока ДНС записи опять перепишутся. Просто кликните по облачкам на странице настройки DNS и ваш сайт будет работать напрямую (мне пришлось так поступить с одним из второстепенных проектов, который почему-то с CloudFlare перестал открываться — см. скриншот ниже). Но по-любому: вся ответственность за ваши действия лежит только на вас и я тут буду, как бы, ни причем.

Сразу после регистрации можно переходить на страницу добавления нового сайта, где в предложенную строку нужно будет просто вставить его доменное имя и нажать на кнопку «Begin Scan»:

Добавление нового сайта в КлоудФлер

Далее будет проходить сканирование в течении нескольких минут, по окончании которого сервис выдаст те данные, что ему удалось нарыть про добавляемый сайт:

Данные DNS записей найденные для добавляемых в Cloud Flare сайтов

Тут, как видите, все ОК — сервис нашел все основные NS записи (включая почтовые), что есть хорошо. Автоматически для будущих данных, передаваемых с этого сайта, включилось кеширование (облачка окрасились). Идем дальше.

Выбираем бесплатный тарифный план в КлоудФлер

Как уже говорил выше, для защиты от Ddos подойдет даже бесплатный тарифный план (на нем при желании еще и бесплатный SSL сертификат получить можно). Отличия плана PRO от бесплатного я описал выше, поэтому выбирайте то, что вам нужно (мне все равно). Идем дальше.

Нужно сменить NS записи у своего регистратора доменных имен на те, что дал Клоуд Флер

Теперь основное. Нужно зайти в панель вашего регистратора доменных имен (где домен подбирали) и сменить там NS записи на те, что предложил на этом шаге мастера CloudFlare. Например, в Вебмани Домейнс это делается на такой вот страничке:

Смена DNS на вебмани домейнс

Нужно просто заменить записи в двух строчках на то, что вам Cloud Flare дал и подождать от 4 часов до 2 суток, пока все это дело пропишется на всех NS интернета. Идем далее, и по истечении нескольких часов после прописывания новых NS серверов можно будет нажать на кнопку «Recheck Nameservers»:

Status Pending в Клоуд Флер

Обратите внимание, что внизу приведены настройки по умолчанию, которые будут применены к вашему сайту сразу после окончательного подключения к CloudFlare (средний уровень безопасности и стандартное кеширование, которое подразумевает попадание в кеш только статики — картинок, стилей и скриптов).

Если подключение ДНС уже прошло, то статус после нажатия на упомянутую кнопку сменится:

Смена Status Active при подключении сайта к КлоудФлар

Кнопка «Quick Actions» позволяет быстро перейти в режим защиты от Ddos и прочих видов атак, который называется «Under Attack Mode». Мне при переходе на Cloud Flare пришлось сделать именно так. Данный режим «Под атакой» (Under Attack Mode) у меня был включен около 12 часов, пока атака не прекратилась.

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

100%-ый аптайм для сайта с помощью CloudFlare

Под автономной работой сайта я имею такую ситуацию, когда по каким-либо причинам ваш хостинг «ляжет», а сайт продолжит быть доступным посетителям. Это, как говорится, крайний случай. Но зачастую хостинг может просто-напросто не справляться с высокой нагрузкой (вызванной посещаемостью или использованием множества плагинов и плохой оптимизацией движка). В этом случае опять же поможет кеширование Html страниц в CloudFlare.

По умолчанию, как я понимаю, сервис кэширует только статику: картинки, CSS и JC. Все. В принципе, и это здорово может облегчить работу хостинга и ускорить загрузку страниц сайта в разных точках мира. Но зачастую этого бывает недостаточно. И даже не это главное. В этом режиме не срабатывает функция «Always Online» (Всегда онлайн), ибо Cloud Flare не умеет творить чудеса и отдает страницы из своего собственного кеша, а если их там нет, то отсылает к хостингу (который в данный момент может быть недоступен).

В общем, задача сводится к тому, чтобы включить кэширование всего содержимого веб-страниц (кода разметки, включающего текстовое наполнение), а не только статики. Сделать это можно на вкладке «Page Rules» из верхнего меню (см. пояснения в хелпе). Почему это не вынесли в общие настройки кэширования? Думаю, что из-за великого разнообразия сайтов и движков, на которых они работают. Видимо, не возможно обеспечить таким образом стабильность. Нужно действовать более точечно, опираясь на структуру и специфику каждого конкретного вебсайта. ИМХО.

На бесплатном тарифе можно создать только три правила для страниц, а на тарифе PRO — уже 20. Суть создания правила довольно проста. Пока опустим то, что нужно вставить в поле с регулярным выражением, а посмотрим что нам предлагают при нажатии на «+ Add a Setting» (добавить настройку):

Создание правила для страниц в КлоудФлер

Здесь как раз можно выбрать настройку степени кэширования (Cache levels), где в открывшемся списке допнастроек можно будет выбрать последний вариант «Cache everything» («Кэшировать все»). Таким образом, мы принудительно заставим CloudFlare кешировать всю вебстраницу, а не только статику.

Еще желательно будет задать время, которое страница будет храниться в кэше CloudFlare и в кэше браузеров посетителей сайта (это две разных настройки). Тут все зависит от степени динамичности вашего сайта в целом и отдельных его страниц в частности. Меня вполне устраивает интервал в несколько суток хранения кеша в облаке, а кеш браузера я выбираю разный (в зависимости от типа страниц).

Для задания этих настроек нужно будут еще пару раз нажать на кнопку «+ Add a Setting» и выбрать:

  1. Browser Cache TTL — настройка времени жизни кэша в браузерах посетителей вашего сайта. Например, если выберите одни сутки, то посетитель, в течении суток зашедший дважды на одну и ту же страницу вашего сайта, второй раз получит ее не из интернета, а из кеша собственного браузера (без изменений). А вот если времени пройдет более суток, то страничка будет запрашиваться уже из интернета (с Cloud Flare). Для главной страницы этого блога я поставил значение «пару часов» для Browser Cache TTL, а для остальных страниц — от суток до двух. Возможно, что можно придумать что-то более оптимальное.
  2. Edge cache TTL — это уже время жизни кеша на серверах в дата-центрах CloudFlare (по всему миру). Если поставите все те же сутки, то все посетители вашего сайта будут видеть эту страницу (или группу страниц, для которых вы задали Edge cache TTL равным суткам) без изменений, даже если на сервере эта страница поменялась (например, к ней добавились комментарии или вы что-то изменили в тексте, поменяли изображение и т.п.).

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

Делается это на вкладке «Caching» (из верхнего меню) путем нажатия на кнопку «Purge Individual Files» (чтобы сбросить весь кеш нужно будет нажать на стрелочку на этой кнопке и выбрать нижний из двух пунктов «Purge Everything»). В открывшееся окно нужно ввести Урл страницы, либо страниц (по одной на строку), либо отдельных файлов (полный путь до картинок, файла стилей и т.п.):

Как сбросит кеш отдельных страниц или файлов в CloudFlare

Я этой опцией пользуюсь довольно часто, например, после изменения картинок, добавлении комментария к статье или при изменении дизайна сайта (сбрасываю кеш для файлика стилей). Файлы, кеш которых вы недавно сбрасывали, отображаются ниже — по ним можно просто кликнуть, чтобы выполнить их очередной сброс. Очень удобно.

Но вернемся к настройкам правил для отдельных страниц сайта — Page Rules. Чуть ранее мы нажали на кнопку «Create Page Rule» и научились включать полное кеширование содержимого Html страниц, а также ограничивать время жизни кэша в браузерах посетителей и на серверах CloudFlare. Получиться в результате должно что-то типа этого:

Правила для кеширования страниц в Клоуд Флер

Т.е. мы задали нужные нам правила кеширования. В примере — это кэширование всего содержимого со сроком жизни кэша в браузерах посетителей 4 час и сроком жизни кеша на серверах сервиса 2 суток. Осталось дело за малым — прописать в первой строке этого всплывающего окна формулу, по которой сервис поймет для каких именно страниц вашего сайта эти правила применять. Как это сделать, можно почитать нажав на кнопку «Хелп» внизу окна настроек правил.

На мой взгляд есть два пути задания правил:

  1. На тарифе Pro есть возможность прописать 20 правил для страниц, что позволяет реализовать первый вариант: описать формулами все типы страниц сайта, которые стоит кешировать. Для моего блога — это главная, страницы со статьями, страницы рубрик, а также статические страницы типа «О блоге» и т.п. Естественно, Урлы админки тут указывать не будем, ибо там кеш может помешать работе.
  2. На бесплатном тарифе доступны только три правила, и в некоторых случаях их может не хватить для реализации первого способа. Второй способ заключается в том, чтобы сначала разрешить кеширование страниц всего сайта, а потом запретить кешировать админку и страницу авторизации. Трех правил для этого должно хватить.

Как настроить полное кеширования страниц сайта в CloudFlare

Теперь поподробнее о практической реализации обеих способов.

Начнем с первого варианта создания разрешающих правил кеширования для всех (или большинства) страниц сайта, которые нужно будет хранить в кеше серверов CloudFlare полностью (весь html код с картинками, скриптами и стилями).

Если страницы со статьями вашего сайта (как и на моем блоге) оканчиваются на .html, то для их полного кеширования хватит одного единственного правила для страниц:

ktonanovenkogo.ru

Замените мое доменное имя на свое и все должно заработать. Довольно просто — знак * заменяет все, что может стоять между доменными именем и суфиксом .html.

Создание правила для полного кеширования страниц оканчивающихся на .html

Останется еще только добавить правило для полного кеширования главной страницы сайта:

ktonanovenkogo.ru/

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

Кеширование главной страницы сайта в CloudFlare

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

Замечательно, когда все страницы кроме главной оканчиваются на .html. У меня же, например, рубрики и статические страницы (типа «О блоге») такого индекса не имеют. С рубриками особо мучиться не пришлось, ибо при настройке ЧПУ в своем блоге на Вордпресс я выбрал, как оказалось, удачный шаблон, с обязательным словом (каталогом) «/category/», поэтому правило для этого типа страниц выглядит так:

ktonanovenkogo.ru/category/*

Ну, а со статическими страницами пришлось поизголяться, но вроде все получилось.

В итоге процент отдаваемых из кеша CloudFlare данных составил (по данным встроенной в эту систему аналитики) около 90%, что есть очень даже хорошо (по сути на эту величину снизилась нагрузка на сервер моего хостинга):

сколько трафика экономит подключение клоудфлер

На отдельном аккаунте в CloudFlare (бесплатном) я разместил все остальные свои небольшие проекты. Т.к. правил для страниц можно было создать только три на бесплатном тарифе, то я решил пойти от противного — разрешить полное кеширование всего сайта, запретив потом трогать страницы админки.

Сразу скажу, что сработало как-то не очень. Вместо 90% загрузок из кеша, в этом случае я получил менее 50%. Но тем не менее свои решения я приведу, авось вы мне подскажите где я ошибся. Итак, первым правилом я разрешил кешировать все:

Page Rules в CloudFlare

А вторым (этот сайт работает на Вордпресс) — для страниц админки выбрал режим кеширования байпасс, т.е. не попадание этих страниц в кеш. Вроде все работает и скорость блога существенно выросла, но в аналитике менее 40 процентов трафика идет через CloudFlare (все остальное тянется с сервера хостинга). Почему? Для меня не очень понятно. При этом с работой в админке никаких проблем при этом не наблюдалось, что уже хорошо.

Если у вас сайт на joomla, то там админку можно забайпассить таким образом (наверное):

domen.ru/admin*

В общем, сами смотрите какой вариант вам выбрать.

На одном из сайтов, подключенных к бесплатному аккаунту CloudFlare, вдруг возникли проблемы (он перестал открываться), поэтому для него я пока просто отключил «облачка» на вкладке «DNS» из верхнего меню:

Как быстро отключить Cloud Flare от сайта

После этого он начал открываться. Переносить NS записи на старые пока не стал — может быть возникнет желание поразбираться что к чему.

Что делать, если началась DDos-атака и как ее отразить?

Если вы подключились к КлоудФлэр именно из-за идущей в данный момент Ддос-атаки (или она началась после подключения), то ее вполне можно будет отразить или снизить эффект от нее даже на бесплатном тарифе этого сервиса. Для этого достаточно лишь перейти на вкладку «Overview» из верхнего меню и нажать на кнопку «Quick Actions»:

Quick Actions и Under Attack Mode в Cloud Flare

Выберите из выпадающего списка пункт «Under Attack Mode» и данный сервис начнет активно противодействовать Ddos-атаке.

Status: I'm Under Attack!

Все пользователи (или боты) будут задерживаться перед обращением к серверу вашего хостинга сервисом CloudFlare на 5 секунд, за время которых он будет пытаться определить реальный ли это пользователь (браузер) или бот.

Реальные пользователи при этом будут наблюдать такую вот картинку на своем экране в течении 5 секунд (до открытия страницы вашего сайта):

Работа режима Under Attack Mode в клоудфлэр

Понятно, что такая «непонятная» надпись часть посетителей таки отпугнет — я наблюдал падение посещаемости в режиме «Under Attack Mode» примерно на четверть по отношению к нормальному режиму работы. Но лучше потерять четверть посетителей, чем все 100%. Согласитесь?

К тому же на тарифе PRO (о котором я писал выше) можно вид этой надписи поменять и снизить процент отказов (например, перевести ее на русский и добавить чуток креатива). По-любому возможность замечательная.

Однако, не стоит оставлять сайт в режиме «Under Attack Mode» дольше того времени, пока идет атака, ибо вы не только часть посетителей будете терять, но и все боты поисковиков будут отсекаться от сайта, что со временем не здорово скажется на посещаемости. Поэтому периодически отключайте режим «Under Attack Mode» простым нажатием на кнопку «Disable» (на вкладке «Overview»- см. скриншот выше) и смотрите на результат.

Выключение режима Under Attack Mode для проверки окончания Ddos атаки

Если сайт опять стал недоступен (Ddos продолжается), то включайте Status: I'm Under Attack! взад. Так продолжайте часа через два мониторить окончание Ддос-атаки, чтобы не держать лишнее время сайт в этом безусловно полезном, но неоптимальном режиме «Под атакой».

На постоянной основе я предпочитаю использовать режим по умолчанию «Medium». Кстати, поменять режим безопасности можно и без переключения в «Under Attack Mode». Сделать это можно на вкладке «Firewall» (из верхнего меню), выбрав нужный вариант из выпадающего меню кнопки с названием текущего Security Level:

Как сменить Security Level в клоуд флэр

Ну, и «I'm Under Attack!» отсюда тоже можно будет включить.

А в целом

Пока вроде все, что хотел и имею сказать. Полазайте еще по вкладке «Speed» и посмотрите, что там можно использовать. А вообще, извините за столь краткое описание этого безусловно примечательного сервиса, но что-то утомился печатать и скрины делать (видать сегодня не в форме).

В рунете подобного меценатства вкупе с ошеломляющей полезностью я пока не встречал. Посему не посчитал для себя обременительным перейти на тариф PRO с ежемесячным отстегиванием 20$.

В принципе, можно было этого не делать, но так как-то спокойнее, что ли...

CloudFlare посвящен пятый ролик из 6 видеоуроков по теме ускорения сайта, которые, на мой взгляд, имеет смысл посмотреть целиком, чтобы воспринимать картинку оптимизации в целом (нужный ролик можно выбрать из выпадающего списка в левом верхнем углу окна плеера):

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Комментарии и отзывы (15)

Zamkadnyi

Одновременно с этим постом новость вышла, читал на Forbes, что скомпрометировали сервис CloudFlare: возможно все пароли и данные пяти миллионов сайтов попали третьим лицам.

Дмитрий

Zamkadnyi: да, сегодня от них получил письмо и ссылку по теме — https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-parser-bug/

Но там что-то про SSL говорится, как я понял. Т.е. утянули не пароли пользователей Cloud Flare, а была возможность просмотреть пароли отправляемые на подключенные к нему сайты их посетителями.

Павел

Добавил туда сайт. А мой провайдер Билайн заблокировал доступ, ip не подошел. Вообщем не подфартило. А в Cloudflare на бесплатном тарифе статический ip или нет? Если статический может ещё раз попробовать добавить вдруг повезет. Как думаете?

Дмитрий

Паве: статический IP — нужно новый аккаунт на другой Емайл зарегистрировать и снова добавиться сайт (наверное, предварительно его удалив из другого аккаунта).

Павел

Дмитрий:И даже если там нормально все будет поначалу, сайт будет функционировать. Потом могут плохого соседа подсадит и опять заблокируют ip и следовательно мой сайт

Дмитрий

Павел: естественно могут и я об этом писал (даже выделял). Но это не проблема CloudFlare, а корявость рук наших интернет-провайдеров блокирующих сайты по IP.

Я ни в коем разе не «продаю» Вам этот сервис, но в случае Ддос это единственный бесплатный вариант отбиться.

Не знаю, вернется ли IP при отключении сайта в настройках КлоудФлера (по идее, должны начать использовать старые NC записи). Зато в случае Ддос можно будет за минут все включить и активировать режим «под атакой».

Можно и платный тариф взять, но гарантии, наверное, опять же будет, хотя шансов попасть на один IP с редиской существенно будет меньше.

Магоме$

МЫ!!! ВМЕСТЕ!!! Спасибо!!!

Elchin

Спасибо за интересный обзор, можете пояснить, после смены NS-ов почта на домене перестала работать?

И еще, Вы не заметили изменения в трафике после перехода на Cloud?

Спасибо.

sagamorr

А у вас смотрю clodflare не стоит. Почему убрали?

И как думаете есть выигрыш по скорости работы между бесплатным и платным тарифом?

Константин

Здравствуйте, Дмитрий!

Подскажите пожалуйста, подключенные к CloudFlare сайты показываются анализаторами в какой стране?

Сайт собирает Персональные данные (формы заявок, сообщений с сайта), сервер в России.

Что покажет после подключения (мы-то тему понимаем, а вот будет ли дергать Роскомнадзор но закону о ПД)?

Валерий

Здравствуйте. Спасибо за гайд. Но меня тоже интересует, почему Вы Дмитрий в настоящее время не cloude. Может какие-то трудности возникли? Сделал себе на сайт такое, а посмотрел у Вас уже опять айпишники инфобоксовские. Я тоже у них на хостинге.

Максим

А если ip у домена и суб домена разные а DnS запись одинаковая. Как подключить защиту от дос ? Помогите прошу умоляю просто )))

max

Не могу разобраться, как работает этот cloudflare. Как домен связан с хостингом, на котором лежит сайт? Я так понял что cloudflare копирует все доступные страницы с сайта и все. А как оно потом работает, если изменили страницу или добавили новую?

Влад

Приветствую.

А разве конструкции типа: domen.net/*js не отвечают за все js которые на сервере, вне зависимости какая директория .../css/style.js и тп?

Если под каждую папку нужно писать путь типа: domen.net/scc/*js

То не вариант сделать это той же регуляркой? domen.net/*/*js либо domen.net/*/*/*/*jpg ?

Будет ли она работать?

Рор

Спасибо друг

Ваш комментарий или отзыв