Назад | Перейти на главную страницу

используя CDN в том же месте, что и сервер

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

У CDN есть несколько преимуществ, помимо географического распределения:

  1. Домены без файлов cookie: если ваш статический контент находится в CDN, ваши пользователи не отправляют файлы cookie вашего сайта с запросом статического файла, что приведет к более быстрым запросам и времени ответа для CSS, JS и изображений.
  2. Параллельное скачивание. Браузеры обычно загружают только два элемента за раз на каждый хост. Отправляя ваш контент на CDN, браузер будет открывать больше одновременных загрузок для каждого имени хоста, которое у вас теперь есть.
  3. Скорость. CDN оптимизированы для быстрой отправки статического контента, и это часто может быть лучше, чем пытаться отправить его через универсальный веб-сервер, который также пытается генерировать динамический контент.
  4. Распределенная нагрузка. Разветвлять весь процесс Apache для обслуживания favicon.ico - это немного расточительно.

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

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