Поиск по сайту:

CDN может ускорить ваш сайт. Вот что вам нужно знать!


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

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

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

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

Такой тип CDN называется «исходным извлечением» или «зеркальным» CDN. Вытягивающая CDN отражает содержимое вашего веб-сайта и доставляет его с меньшей задержкой и улучшенным кэшированием. Другой вариант называется CDN с отправкой по происхождению, который может заменить некоторые части вашего веб-сервера. Push CDN в основном используются для размещения контента, который невозможно разместить на традиционных веб-серверах, таких как службы потокового видео или другие большие медиа. Например, изображения и видео, хранящиеся в Amazon S3, можно передавать через CDN CloudFront в принудительной конфигурации, что полностью устраняет необходимость размещения этого контента.

Полное кэширование сайта

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

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

Однако не следует применять эти настройки ко всему сайту целиком. Некоторые вещи должны быть динамичными. Например, страница профиля пользователя или любая страница, требующая аутентификации, никогда не должна кэшироваться, иначе каждый посетитель своей страницы профиля обнаружит, что просматривает информацию другого аккаунта. Именно это произошло со Steam во время рождественской распродажи 2015 года, когда Valve обновила конфигурацию кэширования, чтобы попытаться смягчить всплеск трафика, и непреднамеренно кэшировала пользовательские данные. Это не позволяло никому войти в систему как другому пользователю, но позволяло им просматривать копию своих личных данных, что по-прежнему является серьезной брешью в системе безопасности.

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

Стоит ли использовать CDN?

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

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

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

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

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