Использование CDN для ускорения доставки статического содержимого




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

Для того, чтобы значительно сократить время загрузки страницы, повысить производительность и снизить пропускную способность и инфраструктуру расходы, вы можете реализовать CDN, или сontent d elivery п etwork, кэшировать эти активы по набору географически распределенных серверов.

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


Что такое CDN?


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

CDN состоит из нескольких точек присутствия (PoP) в разных местах, каждая из которых состоит из нескольких пограничных серверов, которые кэшируют активы из вашего источника или хост-сервера. Когда пользователь посещает ваш сайт и запрашивает статические активы, такие как изображения или файлы JavaScript, их запросы направляются CDN на ближайший пограничный сервер, из которого подается контент. Если у пограничного сервера нет кэшированных активов или срок действия кэшированных активов истек, CDN будет извлекать и кэшировать последнюю версию либо с другого ближайшего пограничного сервера CDN, либо с ваших исходных серверов. Если кромка CDN имеет запись кэша для ваших активов (что происходит в большинстве случаев, если ваш веб-сайт получает умеренный объем трафика), он вернет кешированную копию конечному пользователю.


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

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


Как работает CDN?


Когда пользователь посещает ваш сайт, они сначала получают ответ от DNS-сервера, содержащего IP-адрес вашего веб-сервера хоста. Затем их браузер запрашивает содержимое веб-страницы, которое часто состоит из множества статических файлов, таких как HTML-страницы, таблицы стилей CSS, код JavaScript и изображения.

После того, как вы развернете CDN и выгрузите эти статические активы на CDN-серверы, либо путем «выталкивания» их вручную, либо с помощью CDN «вытащить» активы автоматически , вы затем проинструктируете свой веб-сервер переписать ссылки на статический контент, чтобы эти ссылки теперь указывали на файлы, размещенные в CDN. Если вы используете CMS, например WordPress, эта переписывание ссылок может быть реализована с использованием стороннего плагина, такого как CDN Enabler .

Многие CDN обеспечивают поддержку пользовательских доменов, позволяя вам создавать запись CNAME под вашим доменом, указывая на конечную точку CDN. Как только CDN получает запрос пользователя в этой конечной точке (расположенный на краю, намного ближе к пользователю, чем ваши серверные серверы), он затем направляет запрос в точку присутствия (PoP), расположенную ближе всего к пользователю. Этот PoP часто состоит из одного или нескольких пограничных серверов CDN, размещенных на точке обмена через Интернет (IxP), по существу, в центре обработки данных, который используют интернет-провайдеры (ISP) для подключения своих сетей. Внутренний балансировщик CDN затем направляет запрос на пограничный сервер, расположенный в этом PoP, который затем обслуживает контент для пользователя.

Механизмы кэширования различаются у поставщиков CDN, но обычно они работают следующим образом:



  1. Когда CDN получает первый запрос на статический актив, такой как PNG-изображение, он не кэширует активы и должен получать копию актива либо с ближайшего пограничного сервера CDN, либо с самого исходного сервера. Это называется «пропуском» кэша и обычно может быть обнаружено путем проверки заголовка HTTP-ответа, содержащего X-Cache: MISS. Этот первоначальный запрос будет медленнее, чем будущие запросы, потому что после завершения этого запроса актив будет кэширован по краю.
  2. Будущие запросы на этот актив (кеш-«хиты»), направляемые в это краевое местоположение, теперь будут обслуживаться из кеша до истечения срока действия (обычно устанавливаются через HTTP-заголовки). Эти ответы будут значительно быстрее, чем первоначальный запрос, значительно уменьшая задержки для пользователей и выгружая веб-трафик в сеть CDN. Вы можете проверить, что ответ был отправлен из кеша CDN, проверяя заголовок ответа HTTP, который должен теперь содержать X-Cache: HIT.


Чтобы узнать больше о том, как конкретный CDN работает и был реализован, обратитесь к документации вашего поставщика CDN.

В следующем разделе мы расскажем о двух популярных типах CDN: push и pull CDN.


Push и Pull Zones


Большинство провайдеров CDN предлагают два способа кэширования ваших данных: вытягивать зоны и зоны вызова.

Pull Zones включают ввод адреса вашего исходного сервера и возможность CDN автоматически извлекать и кэшировать все статические ресурсы, доступные на вашем сайте. Зоны вытаскивания обычно используются для доставки часто обновляемых, малых и средних веб-ресурсов, таких как HTML, CSS и JavaScript-файлы. После предоставления CDN с адресом вашего исходного сервера следующий шаг обычно переписывает ссылки на статические активы, так что теперь они указывают на URL-адрес, предоставленный CDN. С этого момента CDN будет обрабатывать запросы входящих активов ваших пользователей и обслуживать контент из своих географически распределенных кешей и вашего происхождения по мере необходимости.

Чтобы использовать зону Push , вы загружаете свои данные в определенное место или место хранения, которое CDN затем выталкивает в кеширование на своем распределенном флоте пограничных серверов. Зоны Push обычно используются для больших, редко изменяющихся файлов, таких как архивы, пакеты программного обеспечения, файлы PDF, видео и аудио.


Преимущества использования CDN


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

Мы рассмотрим эти и некоторые другие важные преимущества, обеспечиваемые использованием CDN ниже.



Происхождение выгрузки


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


Более низкая латентность для улучшения пользовательского опыта


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

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


Управление трафиком и предотвращение простоев


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

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


Сокращение затрат


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


Повысьте безопасность


Другим распространенным вариантом использования для CDN является смягчение атаки DDoS. Многие поставщики CDN включают функции для мониторинга и фильтрации запросов на пограничные серверы. Эти службы анализируют веб-трафик для подозрительных шаблонов, блокируя трафик вредоносных атак, продолжая доставлять надежный трафик пользователя. Поставщики CDN обычно предлагают множество услуг по предотвращению DDoS, от общей защиты от атак на уровне инфраструктуры ( уровни 3 и 4 OSI ), до более продвинутых услуг по смягчению последствий и ограничения скорости.

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


Выбор лучшего решения


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

Перед развертыванием CDN дополнительные шаги оптимизации, такие как минимизация и сжатие файлов JavaScript и CSS, а также включение сжатия HTTP-запросов на веб-сервер, также могут существенно повлиять на время загрузки страницы и использование полосы пропускания.


Вывод


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

Благодаря плагинам и сторонней поддержке основных платформ, таких как WordPress, Drupal, Django и Ruby on Rails, а также дополнительные функции, такие как смягчение DDoS, полный SSL, мониторинг пользователей и сжатие активов, CDN могут быть эффективным инструментом для обеспечения безопасности и защиты оптимизация веб-сайтов с высоким трафиком.
Использование CDN для ускорения доставки статического содержимого Использование CDN для ускорения доставки статического содержимого Reviewed by Admin on августа 23, 2018 Rating: 5

Комментариев нет: