Что такое CDN и как это работает?

Введение

Сеть Доставки Содержимого (CDN) является самым оптимальным вариантом, чтобы ускорить загрузку сайта и оптимизировать потребляемые им ресурсы. CDN обеспечивает быструю загрузку вашего статического контента (изображений, CSS, JavaScript, видео и т.д.) доставляя его в ближайшее для вашего посетителя место, тем самым значительно улучшая время отклика сервера. Он предназначен для больших сайтов с огромным количеством контента, однако, использовать его для ускорения работы могут любые сайты. Большинство провайдеров услуг CDN платные, но, существуют и бесплатные, к примеру CloudFlare, который также предоставляет DDoS защиту и другие функции. Проще говоря, нет причин их не использовать. В этом руководстве вы узнаете, что такое CDN и как с помощью него ускорить загрузку сайта.

Что такое CDN?

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

Все ли провайдеры услуг хостинга поддерживают и получают выгоду от использования CDN?

Основной причиной ускорения работы сайта CDN является распределенная сеть серверов, которая доставляет файлы в ближайшее для посетителя место. Вы можете подумать, что если ваш сайт расположен на мощной хостинг платформе, такой как VPS или выделенном сервере, использование CDN не принесет особой пользы. Однако вне зависимости от количества ресурсов имеющихся у вас, расположение сервера является важным фактором для ускорения работы сайта на стороне посетителя. Давайте предположим, что ваш посетитель из Индии, тогда как ваш сервер расположен в США. Из-за большого расстояния между посетителем и сервером, доставка контента займет много времени. Однако сервера CDN расположены в нескольких местах (к примеру CDN расположены в Индии, США, Сингапуре). Если посетитель из Индии, то CDN доставит файлы из ближайшего места (в данном случае будет Индия)

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

По сути, использование CDN помогает ускорить загрузку сайта на всех хостинговых платформах.

Преимущества использования Сети Доставки Содержимого

Здесь представлены основные преимущества, которые Сеть Доставки Содержимого может предложить вашему сайту:

  • CDN отлично подходит для сайтов с большим количеством посетителей.
  • CDN обеспечивает доступность вашего сайта по всему миру.
  • Уменьшая количество запросов на сервер вашего хостинга, CDN значительно уменьшает использование ресурсов (таких как дисковое пространство и пропускную способность).
  • Общее ускорение загрузки сайта, в особенности если посетитель находится близко к серверу доставки.
  • Более высокое место в рейтинге поисковых систем из-за увеличения в скорости, которое предоставляет CDN.
  • CDN подходит для ВСЕХ типов сайтов и платформ для хостингов.

Шаг № 2: Обновите свой DNS сервер

Допустим, что Вы используете BIND dns сервер. Отредактируйте файл зоны, добавив следующие элементы:

; CDN CNAME mapping for files.hostcomp.ru
files                3660       IN CNAME files.hostcomp.ru.example.com.
; Your www-origin url (note hostcomp.ru is also hosted on same server IP 123.1.2.3)
www-origin      3600       IN A 123.1.2.3

Перезагрузитесь:

# rndc reload

Чтобы настройка была проще, используйте один и тот же веб-сервер для домена origin pull и основного домена, то есть хостите www-origin.hostcomp.ru и hostcomp.ru на одном сервере. Это позволит Вам загружать и связвыать файлы непосредственно к серверу CDN.

Примите во внимание, что Вы можете установить CNAME и оригинальные имена хостов, используя также панель управления ISP DNS

Cloud Flare

Пожалуй, является наиболее передовой CDN, позволяющей увеличить скорость и надежность работы сайта.

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

Основные преимущества данной CDN, предоставляемые ей бесплатно:

  • глобальность и сбалансированность
  • функция кэша данных и его очистка
  • асинхронная загрузка JavaScript
  • поддержка IP v6
  • HTTP/2, SPDY
  • WebSocet
  • Restful API
  • защищенность от DDos-атак
  • защищенность версии 1.2 и 1.3
  • перенаправление на HTTPS
  • защита от спамящих ботов
  • анализ уязвимостей
  • возможность настройки параметров отдельных веб-страниц

Cloud Flare позволяет произвести настройку ресурса менее, чем за 5 минут

Бывает, что большую важность играет надежность. Тогда вы можете приобрести тариф PRO или даже более продвинутый

Это даст вам доступ к таким важным функциям, как firewall для приложений, оптимизированная работа с картинками и мобильными версиями страниц.

Важной особенностью это CDN является ее работа с приложениями, позволяющая пользоваться ими без дополнительных установок и изменений в коде. Данные о ресурсах, использующих CDN показывают, что почти 80% сайтов из первого миллиона самых популярных сайтов мира используют именно эту CDN

Среди них: Yelp, Feedly, Mozilla, Digital Ocean, Udacity, CodeGuard, Zopim, StackOverflow, Reddit

Данные о ресурсах, использующих CDN показывают, что почти 80% сайтов из первого миллиона самых популярных сайтов мира используют именно эту CDN. Среди них: Yelp, Feedly, Mozilla, Digital Ocean, Udacity, CodeGuard, Zopim, StackOverflow, Reddit.

CloudFlare

Среди бесплатных CDN сетей самым более привлекательным и вроде как более быстрым оказалась CDN сеть от CloudFlare. Точных замеров до миллисекунд не проводилось за неимением на это свободного времени, а все выводы о скорости работы делались так сказать «на глаз»!:)

Сразу же при добавлении домена желательно добавить все остальные ДНС записи, например ТХТ для SPF, DKIM и т.д.. После добавления МХ записи Name: @, Type: MX, Value: mx.yandex.ru, Priority: 10 — её Name будет отображаться как «имя_домена»:

Как объяснила тех. поддержка — это нормальное поведение их системы и запись с именем «@» полностью валидна и работоспособна и автоматически отображается как «имя_домена». На следующем шаге выбираем тарифный план, тип оптимизации и уровень безопасности:

Дальше будет предложено изменить список ДНС серверов для своего домена на DNS сервера от CloudFlare:

CDN сеть CloudFlare предоставляет статистику за каждые 24 часа для фрии аккаунтов и через каждые 15 мин. для платных. Для бесплатных аккаунтов доступно создание всего трёх правил для трафика:

Также доступны всякие (бес)платные фичи и функции…, а если сайт недоступен и нет закэшированной версии, то видим заставку-заглушку или предложение просмотреть страницу из кэша:

Когда в запросе обнаружены опасные конструкции (в зависимости от уровня безопасности), подозрение на спам-бота, ботнет-зомби и т.д., то клиенту предлагается «каптча»:

Можно создать свой список правил для доверенных или заблокированных ИП, их диапазонов или стран целиком.

Incapsula

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

  • глобальная сеть доставки контента;
  • кэширование и сжатие для лучшей оптимизации работы с изображениями;
  • защищенность от спамящих ботов, наличие CAPTCHA;
  • данная CDN поддерживает IP v6;
  • позволяет отслеживать статистику, аптайм и трафик в реальном времени, имеет возможность создания отчетов;

Если у вас крупный проект, вы можете воспользоваться тарифом Business или PRO. В отличие от бесплатного, эти тарифы имеют значительно больше функций, например, защита от DDos-атак, firewall, балансировщик загруженности сервера.

Расположение данной CDN в тридцати точках мира делает возможным ее использование практически в любом уголке планеты. Также у Incapsula имеется модуль для Joomla, позволяющий настраивать скорость работы ресурса и доставку данных с помощью панели управления CMS.

Более 500 тысяч ресурсов используют данную CDN, среди них: Moz, Wix, Xoom, Siemens, IATA, GoEast, T-Mobile.

Datapath

Увеличивает скорость загрузки и уменьшает затраты трафика благодаря использованию интеграции с AWS. Она дает своему владельцу возможность полностью контролировать сеть и трафик, ориентируясь на время ожидания, а также стоимость и пропускную способность канала. Благодаря оптимизации трафика значительно снижается время ожидания AWS.

Бесплатный пакет предоставляет функции:

  • эластичный ip-адрес
  • оптимизированное время ожидания
  • статистика трафика
  • 500 Гигабайт трафика каждый месяц

Лучше всего данная CDN подходит при использовании AWS для снижения времени ожидания сети и затрат на функционирование сайта.

Шаг № 3: Настройте Origin Pull веб-сервер

Вам нужно настроить www-origin.hostcomp.ru следующим образом:

  • Origin pull DocumentRoot: /home/httpd/www-origin.hostcomp.ru – все ваши .css, .js и загруженные файлы будут храниться здесь.
  • Server Blog DocumentRoot: /home/httpd/hostcomp.ru – Все Ваши файлы wordpress будут храниться по этому адресу.
  • MaxAge: задайте максимальную продолжительность жизни статических файлов для сети cdn.
  • Etags: An ETag (тэг объекта) — часть HTTP, протокола World Wide Web. Это ответный заголовок, который может быть возвращен любым HTTP/1.1 совместимым веб сервером и используется для выявления изменений контента по данному URL. Когда новый ответ HTTP содержит тот же ETag, что и старый ответ HTTP, клиент может сделать заключение, что контент не изменился, и не продолжать загрузку.

Приведем пробный пример элемента Lighttpd lighttpd.conf:

# Configure ETags
etag.use-inode = "enable"
etag.use-mtime = "enable"
etag.use-size = "enable"
static-file.etags = "enable" 

###### CDN FILES via WordPress Upload ##############
$HTTP"host"  == "www-origin.hostcomp.ru"{
        server.document-root = "/home/httpd/www-origin.hostcomp.ru"
        accesslog.filename         = "/var/log/lighttpd/cdn.access.log"
	#  Set max age
        $HTTP"url" =~ "^/" {
            expire.url = ( "" => "access 60 days" )
        }
}

Вот примерный файл Apache httpd.conf:

	ServerAdmin webmaster@hostcomp.ru
	DocumentRoot /home/httpd/www-origin.hostcomp.ru
	ServerName files.hostcomp.ru
	ServerAlias file.hostcomp.ru
	ErrorLog /var/logs/httpd/cdn-error_log
	CustomLog /var/logs/httpd/cdn-access_log common

	# Files in this directory will be cached for 1 week only.
	# After 1 week, CDN server will check if the contents has been modified or not.
	# If not modified, Apache will send 304 "Not Modified" header
	"/userimages">
		Header set Cache-Control "max-age=604800, must-revalidate"
	

	# Disable ETag as we are on cluster Apache server
	"/pdfs">
		Header unset ETag
		FileETag None
	

	# Do not cache
	"/patches">
		Header Set Cache-Control "max-age=0, no-store"
	

Типы CDN

CDN может использовать различные методы для дистрибуции контента:

  1. Peer to peer CDN – такой тип используется для доставки последних серий мыльных опер (сериалов / ТВ шоу) и патчей/обновлений для программ за короткое время большому количеству пользователей.
  2. Origin Pull CDN – этот тип очень удобен для дистрибуции маленьких файлов, таких как javascript, css, изображений, текста, pdf, .doc, .xls и пр. Именно этот тип рекомендуется использовать с WordPress. Весь контент хранится на Вашем собственном сервере с названием «Origin Pull Host». Этот хост регистрируется в CDN. Когда первый пользователь создает запрос контента, он перенаправляется в CDN сеть из Вашего хоста и посредством CDN этот контент пересылается в ближайший к пользователю пункт. Контент кэшируется в CDN по маркеру TTL (время жизни пакета данных в протоколе IP). Такая конфигурация предполагает расположения хранилища на Вашем сервере, а не на сервере CDN. Пользователь, первым запросивший данный контент, получит весьма средние показатели скорости доставки через CDN, но последующие запросы будут обработаны и выполнены очень быстро. Этот тип CDN рекомендуется для файлов, объемом менее 10МБ.
  3. PoP Pull CDN – Вам необходимо загрузить данные на CDN хост сервер, где они буду храниться до запроса. Эта опция немного более дорогая, так как Вам нужно приобрести CDN хранилище и провайдера с предоставлением подходящей ширины канала. Такой тип рекомендуется для больших файлов, потокового видео и т.п. Вам нужно будет загрузить файлы на CDN сервер, используя FTP / SCP или API.

The Coral Content Distribution Network

Ещё один вариант CDN сети, для использования которой достаточно в переди имени своего домена добавить «.nyud.net» — т.е. сначала имели http://mydomain.com/…/…/, а в итоге должно быть http://mydomain.com.nyud.net/…/…/.

158.130.6.254.IP4.NYUCD.NET  158.130.6.254
202.244.160.251.IP4.NYUCD.NET 202.244.160.251
129.107.35.132.IP4.NYUCD.NET 129.107.35.132
128.220.231.3.IP4.NYUCD.NET  128.220.231.3
200.19.159.35.IP4.NYUCD.NET  200.19.159.35
204.85.191.10.IP4.NYUCD.NET  204.85.191.10
139.19.142.1.IP4.NYUCD.NET   139.19.142.1
192.33.90.69.IP4.NYUCD.NET   192.33.90.69
216.165.109.81.IP4.NYUCD.NET 216.165.109.81
156.56.250.227.IP4.NYUCD.NET 156.56.250.227

Те кто используют «Comodo Secure DNS» могут получить кривую страницу — т.е. без стилей, шрифтов, изображений и прочих проксируемых элементов потому, что:

Шаг 2 — Настройка CDN

Вариант 1 —

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

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

Вариант 2 — Использование платного CDN для ускорения загрузки сайта

Если вы выбрали платный вариант использования CDN, вот несколько хороших провайдеров:

  • MaxCDN и Photon хорошие варианты для сайтов на основе CMS (WordPress, Joomla, Drupal) с большим количеством фото и изображений.
  • RackSpace и CDN77 являются эффективными при наличии на сайте видео или потокового вещания.
  • jsDeliver если у вас большое количество JavaScript, это тот CDN которой вы ищите.

Итоги

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

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

Особого ускорения для сайта географически расположенного в России добиться так и не удалось или это я не заметил, а вот для тех которые размещались за бугром, то для этих сайтов использование таких (забугорных) CDN сетей дало прирост производительности почти в два раза!

Вам решать — быть или не быть.

Ссылка на основную публикацию