Ошибка 404 на CDN: почему это не страшно

Почему при получении адреса CDN для вашего проекта вы можете наблюдать ошибку 404 и что она означает?

Бесплатно 7 дней

Представим, что вы уже создали аккаунт в cdnnow! и получили свой адрес CDN.

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

Зачем вообще использовать CDN для раздачи статики?

Для начала давайте вспомним, для чего вообще нужен CDN сайту, особенно, в разрезе раздачи статического контента. CDN (Content Delivery Network — сеть доставки контента) нужен для того, чтобы ваши файлы (изображения, стили, скрипты и так далее) грузились быстрее за счёт их кеширования на серверах, расположенных ближе к пользователю. Это очень актуально для проектов с высокой нагрузкой и географически разнесённой аудиторией. Представьте себе, что пользователи заходят на сайт с разных концов света, а сервер стоит, допустим, в одном из дата-центров Москвы. Каждый раз для загрузки страницы браузеру нужно отправить запрос по каждому подключенному на странице файлу в Москву, дождаться ответа и только потом отобразить сайт. Это долго. Теперь же представьте, что часть контента вашего сайта уже загружена на множество серверов по всему миру. Тогда пользователь из Нью-Йорка сможет получать необходимые файлы не из Москвы, а из ближайшего к нему дата-центра в США. Всё происходит быстрее, плавнее, сайт загружается мгновенно. И вот для этих целей CDN просто незаменим.

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

Что такое ошибка 404 и почему она возникает?

Это стандартный ответ сервера, который сообщает о том, что запрашиваемый ресурс не найден. Для пользователя это выглядит как сообщение: «Страница не найдена», что часто пугает. И, конечно же, когда вы видите такую ошибку на адресе своего CDN, возникает закономерный вопрос: «почему? Ведь ссылка должна работать, это же копия моего сайта».

На самом деле, по умолчанию мы настраиваем кеширование только для определённых типов файлов, таких как изображения, стили, скрипты, шрифты и другие статические элементы. А вот страницы, как уже сказано выше, не кешируются. Поэтому, когда вы пытаетесь открыть саму ссылку на CDN, которая выглядит, например, так: https://user88662.clients-cdnnow.ru/, вы получаете ошибку 404. Но это не означает, что CDN не работает или ссылка сломана. Это просто результат того, что запрашиваемая главная страница вашего сайта не кешируется в CDN. Сами страницы отсутствуют на наших серверах и CDN попросту не может отдать их пользователю. Но статика при этом раздаётся исправно.

Вот пример: https://user88662.clients-cdnnow.ru/_assets/images/logo/header_logo.svg — изображение успешно загружается с CDN, подтверждая, что всё работает как надо.

Однако, бывает и так, что ошибка получается и при ссылке на статический файл, например: https://user88662.clients-cdnnow.ru/_assets/images/logo/header_logo2.svg. Если мы точно знаем, что такой тип файла настроен на кеширование в личном кабинете cdnnow! (в данном случае — изображения), и ссылка выдала нам сообщение о ошибке — стоит проверить, есть ли этот файл на вашем домене. Может быть, файл был удален с сервера-источника или же ошибка в написании имени.

Какие файлы в cdnnow! кешируются по умолчанию?

В настройках проекта в личном кабинете selfcare.cdnnow.ru на вкладке «Кеширование» перечислены типы файлов и их расширений, которые кешируются в CDN по умолчанию:

  • Изображения (bmp, gif, ico, jpeg, jpg, png, svg, tif, tiff, webp)
  • Стили CSS (css)
  • Скрипты javascripts (js)
  • Шрифты (otf, ttf, woff, woff2)
  • Архивы (gz, rar, z, zip)
  • Аудио (aac, flac, mp3, ogg, wav)
  • Видео (avi, flv, mkv, mp4, mpeg, oga, ogv, ogx, vob, webm)
  • Встраиваемые объекты (swf)
  • Вызовы API (REST, SOAP) (json, wsdl, xsd, xml)
  • Документы (csv, doc, docx, odp, ods, odt, pdf, pps, ppsm, ppsx, ppt, pptm, pptx, sldm, sldx, txt, xls, xlsx)
  • Запускаемые файлы (com, exe, apk)

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

Можете также почитать нашу статью как кешировать другие типы файлов (иные расширения).

Сейчас мы говорим именно о прямой ссылке на страницу, а не на какой-то файл (пример https://user88662.clients-cdnnow.ru/).

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

Когда стоит включить полное кеширование?

Можно включить опцию "кешировать всё что есть на сайте" в случае, если в списке указанных к кешированию файлов нет нужного расширения.
Тут можно ознакомиться еще со статьей как кешировать другие типы файлов (иные расширения). Если этот вариант — про вас, то мы рекомендуем настроить редирект с прямого адреса CDN на ваш домен. Это можно сделать на вкладке SEO в личном кабинете, в настройках проекта. Введите для перенаправления прямых запросов адрес вашего домена. Тогда файлы через CDN-адрес будут открываться по CDN-ссылке, а страницы будут перенаправлять на ваш домен.

Почему страницы не стоит кешировать?

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

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

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

Подводим итоги

Ошибка 404 на прямом адресе CDN — это нормальная часть работы системы, и её не стоит бояться. Она возникает потому, что страницы по умолчанию не кешируются. Если вам нужно больше, вы всегда можете настроить своё кеширование так, как это нужно именно вам. Главное — помнить о том, что правильная настройка кеширования повышает производительность и удобство работы с сайтом, а наши специалисты всегда помогут с её реализацией.

А если у вас еще нет аккаунта в cdnnow!, самое время его завести. Бесплатный тестовый период 7 дней.

Создание аккаунта CDN

Если у вас ещё нет учётной записи в cdnnow!, оставьте заявку на подключение CDN, указав ваши email, сайт, CMS.

Вы получите письмо с доступом в личный кабинет и служебным адресом CDN для вашего проекта вида userXXXXX.clients-cdnnow.ru или userXXXXX.nowcdn.co, где userXXXXX — ваш уникальный параметр.

Читайте также:

Мы используем cookie, чтобы сделать сайт удобнее