Использование CDN для хранения / обслуживания загрузки пользовательских изображений? - PullRequest
6 голосов
/ 20 августа 2009

Я все еще новичок во всей идеологии CDN, так что это может быть глупым вопросом, но я уверен, что кто-то может пролить свет на это. У меня есть базовый php-скрипт, который загружает изображения пользователей, изменяет их размер, создает каталог ($user_id) и сохраняет готовый продукт в каталоге (например, www.mysite.com/uploads/$user_id/image1.jpg). Работает как шарм.

Я только что распространил всю информацию о хостинге и использую архитектуру Rackspace (Slicehost?) "Cloud Server". Я также подписался на Rackspace (Mosso?) "Облачные файлы". Пока все хорошо.

Итак, мой вопрос: должен ли я хранить изображения, которые пользователи загружают локально (на моем сервере apache) или как объекты через Cloud Files? Кажется хорошей идеей отделить статический контент от моего веб-сервера, чтобы я мог просто использовать его для генерации динамического контента. Но много ли будет создавать контейнер с поддержкой CDN каждый раз, когда пользователь загружает изображение?

Надеюсь, я не скучаю по лодке на этом полностью. Кажется, я не могу найти много информации об этом, но я уверен, что есть веская причина, по которой я должен либо продолжать эту идею, либо избегать ее. Любые предложения приветствуются!

1 Ответ

13 голосов
/ 27 августа 2009

Я не знаком с предложением Rackspace, но общая логика использования CDN для статического контента заключается в достижении двух целей:

  1. разгрузка полосы пропускания и обработка на другие серверы, освобождая ваши.
  2. переместить запросы клиенту
  3. Переместите большой статический контент ближе клиенту

Когда вы отправляете сгенерированный HTML-код в браузер, он будет «видеть» изображения, например, как www.yourdomain.com/my_image.jpg, и выполнять дополнительные запросы для каждого фрагмента статического содержимого, что может привести к нехватке потоков на вашем сервере. на обслуживание запросов. Если вы переместите весь этот контент в CDN, браузер увидит что-то вроде cdn.yourdomain.com, и браузер будет запрашивать изображения из CDN, что позволит вашему серверу обслуживать другие запросы. Кроме того, большинство CDN распределяют ваш контент по нескольким местоположениям и имеют географическую маршрутизацию для запросов на обслуживание контента из ближайшего возможного местоположения, что улучшает воспринимаемое время загрузки для клиентов.

...