Как использовать CDN для улучшения веб-производительности

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

В этой статье мы подробно рассматрим концепцию CDN.

Что такое CDN и как он работает

Вы уже знаете, что CDN — это сеть серверов, распределенных географически.

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

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

ЧтобыДВы настраиваете параметры своего домена для направления трафика в CDN. 

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

CDN

Как сети доставки контента повышают скорость

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

  • Уменьшение задержки в обоих направлениях в сети
  • Обслуживание кэшированного контента и снижение нагрузки на ваш сервер
  • Оптимизация вашего контента

Сокращает задержки за счет использования глобальной инфраструктуры

Данным требуется больше времени, чтобы дойти до ваших пользователей, чем больше расстояние, которое им приходится преодолеть. Например, типичное путешествие по сети туда и обратно между Парижем и Оклендом в Новой Зеландии может занять 291 миллисекунду.

Время пинга между разными городами

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

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

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

Подключения к серверу

Обслуживание кэшированного контента и снижение нагрузки на ваш сайт

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

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

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

Автоматическая оптимизация

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

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

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

Ограничения

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

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

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

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

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