Выход за рубеж для сайта — это целая история. Можно сделать выбор языка, перевести материалы и запустить рекламу… а потом выяснить, что у зарубежных пользователей сайт то долго загружается, то просто выдаёт ошибки. И вместо восторженных вздохов, в отзывах сплошной негатив, а на балансе — убытки.
Причина этой проблемы — в самом принципе работы интернета.
Всемирная паутина
Интернет не просто так называют паутиной. У него нет какого-то определенного центра, где хранится всё. Интернет состоит из множества узлов — серверов — связанных нитями интернет-магистралей. На этих серверах хранятся сайты.
Но как интернет знает, на каком сервере искать нужную картинку? Как найти нужный узел во всемирной паутине?
Существуют специальные DNS-серверы, которые помогают направлять запросы. У каждого сервера есть уникальный IP-адрес. Он состоит из четырех групп цифр, от одной до трёх цифр в каждой группе, и используется для идентификации сервера. DNS соединяет IP-адрес с доменом — например google.com или yahoo.com.
Можно переходить по сайтам, используя эти IP-адреса. Например, https://89.184.80.164 — это Work.ua.
Хостинговые компании, которые сдают в аренду домены и серверы для сайтов, создают соответствующие записи на своих DNS-серверах. Интернет-провайдеры копируют их оттуда на свои DNS-серверы.
Вот, как это работает на практике:
- Одесский студент Миша открывает браузер и вводит в адресную строку https://work.ua.
- Компьютер Миши отправляет запрос на DNS-сервер местного интернет-провайдера. Тот определяет, что домен work.ua находится на сервере с IP-адресом 89.184.80.164 и в сети провайдера такого IP нет.
- Сервер провайдера отправляет запрос Миши национальному провайдеру (Укртелеком). Сервер Укртелекома определяет, что сервер с IP-адресом 89.184.80.164 находится в Киеве.
- Укртелеком передает запрос на сервер в Киеве, который передает его в местный датацентр. Там запрос Миши обрабатывается и на его компьютер, по тому же маршруту, начинает отправляться главная страница.
Все это происходит почти моментально. Миша даже не успевает сделать глоток кофе — а сайт уже загрузился. Но что если на https://work.ua зайдёт не Миша из Одессы, а Джо из штата Кентукки?
Еще до того, как запрос Джо попадет в Украину, ему нужно пройти:
- Сервер провайдера, к которому подключен компьютер Джо.
- Сервер регионального провайдера штата Кентукки.
- Сервер национального-провайдера (AT&T, Comcast).
- Сервер-передатчик, который отправит запрос по кабелю через Атлантический океан.
- Целую цепочку серверов в Европе, которые в итоге передадут запрос на серверы украинского национального провайдера.

В результате, страница входа у Джо открывается уже не за секунду, а секунд за пять. И это — при свободных каналах связи. Если какой-то канал перегружен, то запрос может где-то задержаться до 10-20 секунд. Запросы с задержкой дольше 30 секунд удаляются, а пользователь получает страницу ошибки.
Единственный способ сделать загрузку сайтов одинаково быстрой для всех — разместить в каждой стране мира сервер с копией сайта. Но представьте сколько будет стоит разместить сайт магазина в каждой стране, сколько сил нужно, сколько программистов и времени, чтобы обновлять каждый сайт!
Но есть решение — сети распространения контента (CDN).
Как работают CDN
Чтобы понять принцип работы CDN, нужно знать, как устроены сайты. Содержимое любого сайта можно условно поделить на статическое и динамическое.
Статическое содержимое одинаково для всех пользователей сайта. Изображения, CSS, Javascript и HTML — статические элементы. CDN копирует весь статический контент сайта. Эта копия называется кэшем. Кэш распространяется по всем серверам CDN и когда в следующий раз Джо захочет открыть сайт, CDN быстро передаст ему кеш-копию из Нью-Йорка, не дожидаясь, пока запрос пройдет от Кентукки до Киева.
Динамическое содержимое генерируется сайтом и веб-приложениями «на лету». Если генерация происходит только один раз, то CDN сохраняет её статический результат в кэш. Если генерация происходит в реальном времени, то CDN просто передаёт запрос на сервер.
Из всех CDN, я рекомендую Cloudflare. Помимо кеширования, она защищает сайт от DDoS-атак с помощью системы умной маршрутизации.
Что такое умная маршрутизация
Запрос от пользователя к сайту может пойти разными путями. Например, запрос из США в украинский датацентр может пойти через Британию, Нидерланды, Германию и Польшу. А может через Испанию, Францию, Италию, Грецию, Болгарию и Румынию. И чем больше серверов-передатчиков на маршруте — тем дольше он будет идти.
Найти карту интернет-соединений можно на Telegeography. Конечно, она уже немного устарела, но просто для ознакомления — подойдёт.
Когда посетитель запрашивает динамические данные с сайта, который подключен к Cloudflare, данные передаются по высокоскоростным каналам самой CDN и ее партнеров. Перед началом передачи подбирается маршрут с максимально быстрым соединением и минимальным количеством серверов-передатчиков. Но всё это происходит, только если запрос посетителя — настоящий, а не часть DDoS-атаки на сайт.
Как работает защита от DDoS-атак на Cloudflare
Когда на сайт с Cloudflare приходит запрос, система проводит анализ предыдущих действий устройства, с которого пришел запрос, на других подключенных к Cloudflare сайтах.
- Если есть шанс, что запрос — часть DDoS-атаки, то он будет проигнорирован.
- Если запрос прислал бот или краулер (автоматический сборщик данных), то доступная ему скорость соединения с сайтом будет ограничена.
- Если же запрос прислал обычный пользователь, то он получает свободный доступ к сайту.
Помимо этого, Cloudflare предлагает и другие, платные, решения. Их механизм работы держится в секрете, но работоспособность проверена на практике. Сеть успешно отражает даже очень сложные атаки, в которых участвуют профессиональные хакерские группы.
Как установить Cloudflare на сайт с WordPress
Подключить Cloudflare к WordPress — просто. Сначала, нужно зарегистрироваться в CloudFlare.
Как зарегистрироваться в Cloudflare
- Перейдите на страницу регистрации в Cloudflare. Введите свой email и придумайте пароль. Поставьте галочку в поле I agree to Cloudflare’s terms and conditions. Кликните Create Account.

- Введите адрес своего сайта в поле Add a website. Кликните Scan DNS Records.

- Cloudflare просканирует ваш домен и покажет рекомендуемые настройки. DNS записи, которые CloudFlare будет защищать, отмечены оранжевым значком. А те, которые не будет — серым. Кликайте на серых иконках, чтобы включить или выключить защиту. Когда закончите, кликните Continue внизу страницы.

- Если какие-то ваши записи не указаны в списке — допишите их. Для этого заполните поля над таблицей и кликните Add Record.
- Выберите тариф и кликните Continue.

- Cloudflare выдаст вам новые DNS адреса, на который нужно будет перенести домен.

- Перейдите в настройки аккаунта Cloudflare и кликните View API Key в разделе Global API Key. Сохраните полученный ключ API.

Теперь нужно поменять DNS на те, что вы получили в пункте 5.
Как настроить CloudFlare для WordPress
После того, как вы поменяете DNS, нужно оптимизировать настройки кеширования Cloudflare. В WordPress это можно сделать через официальный плагин CloudFlare.
- Войдите в админ-панель WordPress.
- Кликните Плагины.

- Кликните Добавить новый.

- В поле поиска, введите Cloudflare.
- Найдите вот этот плагин в выдаче поиска. Кликните Установить.

- Дождитесь окончания установки и кликните Активировать.

- Перейдите в Настройки > Cloudflare

- Кликните на here

- Введите свой логин на Cloudflare и ключ API. Кликните Save API Credentials.
- Кликните Apply, чтобы подключить оптимизированные настройки Cloudflare. Также кликните Enable, чтобы включить автоматическое управление кэшем.
- Когда Cloudflare попросит вас подтвердить автоматическое управление кэшем — кликните I’m sure.
Cloudflare — это не волшебная палочка, один взмах которой решит все ваши проблемы. Она не поможет, если у вас плохой хостинг или неоптимизированный сайт. Но если вам нужно ускорить загрузку сайта для зарубежных пользователей и защититься от DDoS, то CloudFlare — лучшее решение.