Cloudflare Configuration
1. Регистрация аккаунта
Известные проблемы:
- Перейти по ссылке https://www.cloudflare.com/ и зарегистрировать новый аккаунт.
- Оплатить базовый тариф (20$/мес).
- Настройки Cloudflare:
- Зайти в аккаунт cloudflare.
- Убедиться что на вкладке DNS отображаются актуальные данные для вашего домена (A-запись, NS, MX)
- На вкладке Overview будут указаны NS сервера предоставляемые сервисом Cloudflare. Они пригодятся для следующего пункта.
- Настройка регистратора домена:
- Зайти в панель управления доменом и заменить существующие NS сервера на указанные выше, для текущего доменного имени (вкладка может называться "DNS сервера", "NS сервера" или подобным образом).
- Подождать 24 часа.
- Если всё сделано правильно, на вкладке Overview панели управления Cloudflare будет отображаться зелёная полоска с галочкой и надпись Status: Active.
- Crypto (настройки SSL)
- В разделе SSL выставить Flexible (опционально, может привести к циклическим редиректам, в таком случае вернуть как было).
- Firewall (настройки блокировок, в случае если ваш сайт находится под DDoS-атакой)
- Сделать разрешение для Google таким образом:
- нажать кнопку Create a firewall rule;
- в поле Rule name написать название правила, например "Google";
- заполнить поля Field, Operator, Value соответствующими значениями User Agent, contains, google;
- в поле Action выбрать Allow;
- нажать кнопку Save and Deploy.
- Сделать следующие разрешения:
- нажать кнопку Create a firewall rule;
- в поле Rule name написать название правила, например "allow trusted ips";
- заполнить поля Field, Operator, Value соответствующими значениями IP Address, is in, следующие адреса через пробел: 78.46.232.201 78.46.232.203 а также все адреса в диапазоне от 79.110.226.1 до 79.110.226.255
- в поле Action выбрать Allow;
- нажать кнопку Save and Deploy.
- Сделать разрешение для Google таким образом:
- Speed (настройки сжатия документа)
- В разделе Auto Minify поставить галочки напротив JavaScript и CSS (не обязательная настройка, позволяет уменьшить размер статиечских файлов и соответственно html-документа).
- Caching (настройки кэширования)
- В разделе Browser Cache Expiration выставить 30 minutes.
- В разделе Always Online выставить On.
- В разделе Caching Level выставить No query string (В зависимости от того как на вашем сайте формируется URL - значение может отличаться).
- Page Rules (управление правилами для страниц).
- Рекомендуется кэшировать все страницы сайта, а те которые не нужно кэшировать (страницы админ-панели, корзины, входа, регистрации итд.) добавлять в исключения. Далее примеры настройки:
- Правила добавляются с помощью кнопки Create Page Rule
- Настройка кэшируемых страниц
- в верхнем поле ввести протокол://доменное имя/*, например https://sitename.com/*
- с помощью кнопки +Add a Setting выставить следующие пары значений
- Browser Cache TTL - 30 minutes
- Cache Level - Cache Everything
- Edge Cache TTL - an hour
- Сохранить и применить изменения с помощью кнопки Save and Deploy
- Настройки некэшируемых страниц на примере страницы корзины при URL вида
https://sitename.com/add-to-cart
,https://sitename.com/cart/update
- в верхнем поле ввести протокол://доменное имя/*cart*, например https://sitename.com/*cart*
- нажать кнопку +Add a Setting, далее выставить следующую пару значений:
- Cache Level - Bypass
- Сохранить и применить изменения с помощью кнопки Save and Deploy
- Важно! Правило, отвечающее за кешируемые страницы, должно находиться ниже всех остальных.
- Дополнительная информация
- Если нужно провести технические работы с сайтом, то можно включить Development Mode во вкладке Caching - он отключит кэширование.
- Есть возможность вручную сбросить кэш
- Статистика и нагрузка на сервис находится во вкладке Analytics
- В случае DDoS-атаки:
- Во владке Firewall выставить ограничения для доступа к сайту, например:
- Выводим captcha для пользователей не из Украины;
- Пропускаем пользователей из Украины только при прохождении браузером JS Challange;
- Другие ограничения, если известен источник угрозы.
- Во владке Firewall выставить ограничения для доступа к сайту, например:
Известные проблемы:
- Поскольку Cloudflare для своей работы использует несоклько подсетей, то наблюдались случаи когда при включении кеширования сайт был недоступен для пользователей из Украины. Это означает, что у Cloudflare появилась новая подсеть, которая блокируется настройками серверов хостинга. В таком случае надо обратиться в техподдержку хостинга чтобы они добавили эту подстеть в whitelist своих firewall'ов.
- Известны случаи нежелательного кеширования всплывающего окна корзины если его содержимое загружается вместе со всей остальной страницей. В таком случае его нужно загружать асинхронно.