Использование cloudflare в wordpress

Часть 3: Первый деплой (ручное развертывание)

Я сделал первое развертывание вручную, чтобы выяснить, что же там происходит на самом деле. Хотя всё это можно сделать и проще:

  1. Устанавливаем wrangler:

  2. Переходим в  директорию нашего блога:

  3. Запускаем wrangler:

  4. Создаем конфиг для wrangler (введите токен, когда его спросят):

Теперь попробуем внести изменения в только что созданный файл wrangler.toml ( полный список возможных настроек):

  1. Указываем accountid и zoneid

  2. Меняем route на что-нибудь вроде *blog.example.com/*

  3. Указываем false для workersdev

  4. Меняем bucket на ./public (или где находится ваш статический сайт)

  5. Если у вас больше одного домена в пути, то вам следует исправить путь в рабочем скрипте: workers-site/index.js (см. функцию handleEvent)

Отлично, пора развертывать сайт с помощью команды .

CDN CloudFlare

CloudFlare (CF) — известная компания на рынке CDN. Основная фишка CF заключается в комбинировании не только услуг CDN, но и защиты от DDoS как для больших, так и для малых проектов. С недавнего времени CF так же предоставляет всем сайтам бесплатные SSL-сертификаты, за которые совсем не надо платить деньги.

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

Большая безопасность передачи данных. При работе через CloudFlare ваш сайт бесплатно может использовать SSL-сертификат, выданный CloudFlare.

Защита сайта от DDoS. CF самостоятельно защищает ваш сайт от атак, не требуя никаких действий с вашей стороны. Если сайт настроен правильно, то его IP-адрес не виден злоумышленнику, а значит масштабная атака на него невозможна. CF выдерживал атаку мощностью 400 Gbit/s — это третья в мире по объему атака.

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

В рамках этой статьи предполагается, что ваш сайт размещается на аппаратном сервере или VPS с выделенным IP, на котором нет других ресурсов.

Ускорение сайта. Используя CDN, вы приближаете трафик к абонентам. Если сайт использует много статических данных, таких как картинки, видео-файлы, архивы, Javascript, CSS, то все эти файлы будут оседать в CDN, что приведет к уменьшению времени загрузки страничек, снижению нагрузки на сервер, а значит большему удовлетворению пользователей.

Отказоустойчивая балансировка нагрузки на сайт. Если ваш сайт использует несколько серверов для обслуживания трафика, CF может самостоятельно распределять по ним нагрузку, используя либо динамическое обнаружение IP-адресов по CNAME, либо несколько записей типа A.

Overview

The _cfduid cookie has been deprecated and will be removed on 10 May, 2021. Please see the blog post for more details.

The _cflb, _cf_bm, and _cfduid cookies are strictly necessary to provide the services requested by our Customers (as defined in our Privacy Policy), as we explain in more detail below.

Cloudflare encourages our Customers to disclose the use of these cookies to their End-Users (as defined in our Privacy Policy), and in some jurisdictions, Customers may be required to disclose these cookies to End Users.

Cookie data is processed in Cloudflare’s data center in the United States and is subject to the cross-border data transfer section (section 7) of the Cloudflare Privacy Policy.

Для тех кто использует клоаку от IM KLO:

Вам нужно включить фильтрацию IPv6. Это нужно, чтобы весь трафик шел по протоколу IPv4 вместо IPv6. (возможно на момент, когда читаете статью, это уже не требуется)Делается это с помощью API Cloudflare. Вместо *ZoneID* (берем в главном разделе домена, внизу страницы) и *GlobalAPIKey* (API ключ нужно получить в своем профиле) и *моя@почта* подставляем свои значения!

Если у вас Windows, делаем через командную строку такой запрос:

Для обладателей Mac OS вводим в терминале следующее:

Обработка…

Готово! Вы в списке.

Ой! Невозможно оформить подписку из-за ошибки. Перезагрузите страницу и повторите попытку.

Настройка сервисов

Cloudflare позволяет настроить автоматическую проверку трафика, чтобы защищаться от плохих посетителей. Для этого нужно настроить «Security Level» в разделе «Firewall» → «Settings». Выбранный вами уровень определит, какие посетители должны будут пройти дополнительную проверку перед входом:

  1. «Essentially off» (Почти отключено) — только для самых тяжких нарушителей.
  2. «Low» (Низкий) — только для наиболее угрожающих посетителей.
  3. «Medium» (Средний) — дополнительная проверка для посетителей, которые представляют умеренную или большую угрозу.
  4. «High» (Высокий) — проверка для всех посетителей, которые демонстрировали угрожающее поведение в течение последних 14 дней.
  5. «I’m Under Attack!» (Я под атакой!) — данный режим должен использоваться только если ваш сайт находится под DDoS-атакой.

Когда на вас идет атака, то вам необходимо включить режим «Under Attack Mode» в разделе «Overview» или «Firewall» → «Settings». Cloudflare в этом режиме выполняет дополнительные проверки безопасности для всех посетителей сайта, чтобы помочь смягчить DDoS-атаки 7 уровня (HTTP-флуд, TCP-флуд, UDP-флуд и другие).

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

Если у вас включено проксирование, тогда вы можете настроить для своего сайта HTTPS. Для этого перейдите в раздел «SSL/TLS» и выберите одну из настроек:

  1. «Flexible». Сертификат будет установлен на сервер Cloudflare и автоматически будет продлеваться.
  2. «Full» или «Full (Strict)». Для корректной работы потребуется установка SSL-сертификата на сервер хостинга. Если сертификат не установлен, тогда на сайте будет ошибка 520.

Создайте бесплатный сертификат Cloudflare Origin в разделе «SSL/TLS» → «Origin Server». Для этого нажмите «Create Certificate», выберите срок действия и нажмите кнопку «Next». После этого будет сгенерирован сертификат (Origin Certificate) и приватный ключ (Private key).

Скопируйте сертификат и приватный ключ в текстовый файл и загрузите на хостинг через Панель управления в разделе «Файловый менеджер». Для установки сертификата напишите нам через раздел «Поддержка».

Также в разделе «SSL/TLS» → «Edge Certificates» вам нужно включить две настройки:

  1. «Always Use HTTPS» перенаправляет все запросы к сайту на защищенный протокол, то есть с HTTP на HTTPS.
  2. «Automatic HTTPS Rewrites». Если ваш сайт содержит ссылки на файлы или страницы по протоколу HTTP, которые также безопасно доступны через HTTPS, тогда они автоматически перезапишутся с использованием безопасного соединения. Это поможет исправить ошибку в браузере посетителей, которая сообщает о смешанном контенте.

В разделе «Speed» → «Optimization» вы можете ускорить загрузку сайта благодаря нескольким настройкам:

  1. «Auto Minify» удаляет ненужные символы из исходного кода без изменения его функциональности (например, пробелы, комментарии и т.д.). Минификация может сжимать размер исходного файла, что уменьшает объем данных, которые необходимо передать посетителям, и таким образом сокращает время загрузки страницы.
  2. Сжатие «Brotli» или gzip, которое ускорит загрузку страницы для ваших посетителей.

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

Если вы обновили картинку или другой статический файл на сайте, но ничего не изменилось, тогда вам потребуется очистить кеш браузера и кеш на CDN-серверах. Это можно сделать в разделе «Caching» → «Configuration» → «Purge Cache». Нажав на кнопку «Custom Purge», вы сможете ввести ссылку на файл и очистить его на серверах Cloudflare, или же очистить весь кеш кнопкой «Purge Everything».

_cflb cookie for Cloudflare Load Balancer session affinity

When enabling session affinity with Cloudflare Load Balancer, Cloudflare sets a _cflb cookie with a unique value on the first response to the requesting client. Cloudflare routes future requests to the same origin, optimizing network resource usage. In the event of a failover, Cloudflare sets a new _cflb cookie to direct future requests to the failover pool.

The _cflb cookie allows us to return an End User to the same Customer origin for a specific period of time (Customer-configured), which in turn allows the Customer origin to maintain an End User’s experience seamlessly (for example, keeping an End User’s items in a shopping cart while they continue to navigate around the website). This cookie is a session cookie that lasts anywhere from several seconds up to 24 hours.

Currently Cloudflare only supports Session Affinity in «orange-cloud» (proxied) mode.

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

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

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

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

ktonanovenkogo.ru/*.html

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

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

ktonanovenkogo.ru/

Тут, думаю, все понятно и без пояснений

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

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

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

ktonanovenkogo.ru/category/*

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

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

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

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

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

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

domen.ru/admin*

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

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

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

Что такое CloudFlare

CloudFlare — это CDN-сеть, которая может ускорить загрузку и обезопасить ваш сайт. Сеть имеет более 100 серверов по всему миру и пропускную способность в 15 терабит.

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

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

Нормального ускорения можно добиться только в PRO-версии сервиса. Бесплатный тариф предлагает вас CDN, но без кеширования, оптимизации изображений и асинхронной загрузки.

Внимание. Если вы планируете использовать тариф ниже “Business”, то имейте ввиду, CloudFlare будет использовать не ближайший к пользователю CDN-узел, а ближайший самый дешевый для сервиса

То есть скорость загрузки может быть ниже, чем на тарифе Бизнес.

Возможности Cloudflare

В настоящее время количество DDoS-атак на сайты увеличивается, и от них нужно защищаться. Веб-сайты, приложения и сети — все это защищено глобальной облачной сетью компании со скоростью передачи данных несколько десятков Тбит/с. Размер и частота атак технически не ограничивается, а сеть Cloudflare блокирует до сотни миллиардов угроз в день.

Чтобы воспользоваться услугой защиты от DDoS-атак, включите проксирование (Proxied) для своего сайта в разделе «DNS». В результате все запросы к вашему сайту будут поступать сначала на сервер Cloudflare, а он в свою очередь будет отправлять проверенные запросы на сервер, откуда фактически работает сайт.

WAF — это правила, благодаря которым вы можете настроить дополнительную защиту для своего сайта. Правила настраиваются в разделе «Firewall» личного кабинета Cloudflare. Они позволяют блокировать запросы от нежелательных роботов, разрешать доступ к сайту для проверенных сервисов, настроить дополнительные проверки для роботов, и многое другое. Более подробно можно почитать об этом в инструкции на сайте компании.

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

При использовании проксирования от Cloudflare доступна настройка защищенного соединения для сайта в разных режимах: Flexible, Full или Full (Strict).

Режим «Flexible» шифрует трафик только между браузером и сервером Cloudflare

По мнению сервиса, эта настройка может помочь личным сайтам и блогам в продвижении, поскольку Google и другие поисковики обращают внимание на HTTPS

Режимы Full и Full (Strict) устанавливают сквозное шифрование трафика с помощью SSL и гарантируют, что никто не сможет отслеживать передаваемые данные. Отличаются режимы тем, что при Full можно использовать самоподписанный сертификат, созданный на своем компьютере, а Full (Strict) требует сертификат от доверенного центра сертификации, например, Let’s Encrypt, Comodo или другой. Также можно установить Cloudflare Origin сертификат, который выдается на срок от 7 дней до 15 лет в разделе «SSL/TLS» → «Origin Server».

В разделе «SSL/TLS» → «Edge Certificates» вы можете включить настройку «Always Use HTTPS». В таком случае запросы к сайту будут автоматически перенаправлены с «http://» на «https://». Активируйте «Automatic HTTPS Rewrites», после чего все ссылки на сайте у подключаемых файлов и картинок будут заменены на «https://», и на сайте не будет смешанного контента.

При защите вашего сайта с помощью Cloudflare не рекомендуется иметь настроенные перенаправления на хостинге.

В Cloudflare доступны для использования CDN-серверы, или серверы сети доставки контента. Они позволяют быстрее получать картинки, документы, шрифты и другие статические файлы, кешируя их на серверах Cloudflare. Кеширование позволит снизить нагрузку на сайт, если на нем много посетителей и статических файлов.

Кеширование настраивается в разделе «Caching» → «Configuration» → «Caching Level» или в разделе «Page Rules», с помощью которого можно создать правила для файлов по определенному адресу сайта.

Есть три настройки кеширования:

  1. No query string — доставляет файлы из кеша только при отсутствии строки запроса. Например: domain.com/pic.jpg
  2. Ignore query string — доставляет один и тот же файл независимо от строки запроса. Например: domain.com/pic.jpg?ignore=this-query-string
  3. Standart — рекомендуемая настройка. Доставляет обновленную версию каждый раз, когда изменяется строка запроса. Например: domain.com/pic.jpg?with=query

Можно настроить кеширование в браузере у посетителей сайта, пункт «Browser Cache TTL». Время жизни кеша будет установлено Cloudflare, если на веб-сервере не указаны более длительные периоды времени.

Pricing

Image resizing is priced based on the number ofuncachedrequests to the image proxy per month. For example, if a page with Image Resizing enabled contains three images, when a user visits the page, you will only be billed for Image Resizing for uncached requests.

The monthly pricing for Business and Enterprise customers is outlined below.

Business customers get 100K requests per month for free. Each additional set of 50,000 uncached requests cost USD $10 per month.

Enterprise customers get 10M requests per month for free. For more information about pricing for additional images, reach out to your Customer Success Manager.

_cf_bm cookie for Cloudflare Bot Management

Bot Management is available to Enterprise customers as an add-on service. Contact your Cloudflare account team to enable Bot Management for your site. Non-Enterprise customers can enable Bot Fight Mode.

The _cf_bm cookie supports Cloudflare Bot Management by managing incoming traffic that matches criteria associated with bots. The cookie does not collect any personal data, and any information collected is subject to one-way encryption. This encrypted file contains Cloudflare’s proprietary bot score and helps manage incoming traffic that matches specific criteria.

Cloudflare places the _cf_bm cookie on the devices of our Customers’ End Users when End Users visit Customer sites that are using Cloudflare Bot Management. If the End User passes a challenge, the cookie prevents additional challenges for up to 30 minutes. This cookie is a session cookie that lasts for up to 30 minutes from the time an End User connects with the site.

Cloudflare Customers can disable the _cf_bm cookie by disabling Cloudflare Bot Management in the Settings tab of the Firewall app.

Балансировка трафика между несколькими серверами

Для балансировки нагрузки добавьте столько записей A, AAAA, сколько у вас имеется серверов с разными IP-адресами — по одной на каждый IP-адрес. Альтернативно CF позволяет использовать запись CNAME. В этом случае вы можете реализовать следующую стратегию с применением дополнительного домена. Потребуется две доменных зоны:

  • mysite.com, которая делегирована на CF;
  • *.myservice-site.com, которая обслуживается на вашем DNS;

Для обеих зон есть SSL-сертификаты, например от Let’s Encrypt. Для всех узлов, среди которых осуществляется балансировка, например,

  • a.myservice-site.com A.B.C.1
  • b.myservice-site.com A.B.C.2
  • c.myservice-site.com A.B.C.3

Создается по одной A (AAAA) записи:

  • pool.myservice-site.com A A.B.C.1
  • pool.myservice-site.com A A.B.C.2
  • pool.myservice-site.com A A.B.C.3

На локальном балансировщике mysite.com настраивается обычная балансировка по серверам (например, с помощью nginx), чтобы корректно обрабатывать трафик при отключении CF.

В это же время на CF настраивается только одна запись вида: mysite.com CNAME pool.myservice.com. CF умеет самостоятельно делать динамическое определение серверов, которые скрыты за CNAME. Таким образом, управляя A-записями на своем DNS вы сможете добавлять или удалять новые хосты из пула балансировки CF.

Если вам необходимо снять защиту CloudFlare, просто измените способ пропуска трафика для записи CNAME, как в примере, приведенном ранее, где используется обычная запись типа A, AAAA.

Таким образом, при использовании балансировки трафика, данная стратегия позволяет осуществлять большей частью на стороне своего DNS, при этом, если требуется отключить защиту, вы можете сделать это с помощью изменения режима обслуживания трафика для одной записи CNAME, а не для множества записей A, AAAA.

Cloudflare

Перейти на сайт сервиса:

Сайт хостинга ukraine.com.ua

Перейти на сайт хостинга:

Cloudflare – отличный и проверенный временем сервис, предоставляющий сеть доставки контента (CDN), DNS, защиту от DDoS атак и обширный перечень услуг безопасности. Сервис Cloudflare очень хорошо известен в индустрии веб-производительности благодаря быстрому поиску DNS и имеет надежную сеть из более чем 100 различных центров обработки данных по всему миру. Данный сервис поддерживают некоторые из крупнейших в отрасли веб компаний, такие как Google, Microsoft и Qualcomm. Некоторые из их клиентов включают Nasdaq, Digital Ocean, Zendesk и Cisco.

Если вы ищете простой способ ускорить и повысить безопасность вашего сайта WordPress или Grav, Cloudflare – отличное решение. Большинство клиентов могут использовать бесплатный тариф, который предлагает неограниченную пропускную способность CDN. Следуйте инструкциям ниже о том, как установить Cloudflare на свой сайт WordPress.

Примечание: если вы используете Cloudflare, вы не можете использовать премиум DNS от Amazon Route 53. Cloudflare работает как полноценный прокси-сервис, что означает, что вы должны выбрать один или другой CDN сервис.

Подключенеи сайта к сервису

Сразу после регистрации в данном окне вводим доменное имя своего сайта:

Далее нажимаем “Next”

Теперь нажимаем на блок “FREE”, и жмем “Confirm Plan”

Далее жмем “Continue”

Далее нам сервис предложит сменить DNS сервера у регистратора домена со старых на свои. На скриншоте ниже в левом столбике указаны старые NSы, а с право NSы самого CloudFlare, на данном этапе нужно скопировать предложенные CloudFlare имена серверов и заменить ими старые.

Замена NS серверов на панели хостинга ukraine.com

В панели хостинга ukraine.com это делается следующим образом:

Переходим в панель:

Далее жмем на “Домены”

В приведенном списке жмем на иконку шестерни того домена который хотим привязать к CloudFlare:

После чего попадаем на страницу настроек домена:

На данной странице нужно нажать на пункт меню слева “NS сервера”:

Суть в том что вы должны поставить NS’ы CloudFlare в той последовательности как это указано у вас в списке. После того как имена серверов были вставлены нажмите кнопку “Изменить NS домена”

После нажатия появится данное окошко:

Значит на хостинге имена серверов были изменены. Возвращаемся к CloudFlare:

Настройка NS серверов на стороне CloudFlare

На данном этапе очень важно сохранить куданибуть NS’ы из левого блока (то есть старые имена), они нам будут нужны позже. Далее жмем “Continue”, после чего откроется данная страница:

Когда Ваш домен будет привязан, цвет полосы изменится с черного на зеленый.

Если этого не происходит жмем время от времени кнопку “Rechechj Nameservers”:

В моем случае чудо произошло ровно через час после всех выше описанных манипуляций:

Далее необходимо вернуться на страницу DNS настроек и прописать недостающие имена.

Настройка NS записей на стороне CloudFlare

Самым первым делом прописываем MX записи вставляя NS’ы которые записали ранее (смотрите выше текст выделенный красным цветом), причем здесь Важно учесть приоритетность. Допустим если наши старые NS’ы ,имели в имени цифру 16 значит мы прописываем приоритет 16

Я конечно понимаю что может сложится мнение не совсем полной инструкции из-за размытости которую я применил к скринам но… В общем Вам инструкция а мне безопасность сайта, отнеситесь с пониманием.

Как прописывать MX?

Делаем щелчок по правому блоку тайпа:

Далее вводим свой домен в поле “Name” и кликаем на поле “Click to configure”.

В данном поле вводим свой старый NS и выставляем приоритет отталкиваясь от цифры которая присутствует в его имени (как на примере ниже). После жмем “Save”:

Далее жмем “Add Record”

Переносим все записи с хостинга в CloudFlare

Теперь добавим остальные не достающие записи. Как это сделать я покажу на примере своего хостинга ukraine.com.ua.

Возвращаемся в панель, жмем “Домены”, в подключаемом домене жмем иконку шестеренки. После чего попадаем на страницу настроек доменного имени.

Вот теперь от сюда все содержимое переносим в CloudFlare DNS.

В итоге вот как было в хостинг панели:

Вот как стало (или вот как было добавлено) в CloudFlare:

Источник записи:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector