Производительность изображений Magento и статика на CDN

11

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

  • маг кеширования
  • объединить css / js
  • минимизировать apc + memcache
  • htaccess твики
  • сессия / кеш на tmpfs

Мой вопрос: каковы шаги для установки CDN (на моем собственном сервере)? (и действительно ли это помогает)

Я понимаю, что-то вроде этого (но это совсем не работает):

  1. создать поддомен cdn
  2. изменить корень документа (и / или зачем устанавливать имя?)
  3. изменить конфигурацию
snh_nl
источник

Ответы:

11

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

То, что вы предлагаете делать, строго не является CDN. Но кроме этого есть пара вещей, которые вы можете сделать.

  • Настройте поддомен, который отправляет как можно меньше дополнительных заголовков (например, файлов cookie) вместе с изображениями
  • Настройте NginX на вашем сервере для обслуживания статических файлов. Так как NginX намного быстрее, чем Apache, это даст вам некоторую скорость
  • Используйте сервис, такой как http://www.jpegmini.com/, чтобы сжимать ваши JPEG дальше
  • Используйте другой файловый сервер для обслуживания изображений, веб-сервер общего назначения настроен для обслуживания, в данном случае, страниц PHP. Файловый сервер будет иметь другую конфигурацию, лучше подходящую для быстрого обслуживания изображений.

Чтобы обслуживать изображения с субдомена, вам необходимо сделать следующее: добавить субдомен в свой DNS (cdn.shirtsofholland.com), добавить псевдоним сервера в конфигурацию Apache для существующего пакета, в котором работает магазин.

ServerAlias cdn.shirtsofholland.com

Переадресация поддомена на этот пакет, а затем в Magento Backend перейти к System > Configuration > General > Web > (un)secure urlизменяя Base media URLкhttp://cdn.shirtsofholland.com/

Процесс для вашего собственного сервера называется разделением домена . [Обновление 11jan2017] Так как разделение домена HTTP / 2 больше не приносит пользы

Если вам нужен настоящий CDN, посмотрите на сервис, такой как OnePica, расширение Magento можно найти здесь или Amazone AWS, используя учебник Ashley Schroder.

Сандер Мангель
источник
9

Вам не нужно никакого дополнительного кода или плагинов, чтобы использовать CDN, который поддерживает поиск источника. К ним относятся Akamai, Cloudflare и Amazon's Cloudfront. Все, что вам нужно сделать, это указать System> Config> URL-адреса JS, Skin и Media в Интернете на правильный домен:

введите описание изображения здесь

Вы также можете настроить записи CNAME в DNS, чтобы DNS отвечал на поддомене вашего корневого домена.

philwinkle
источник
3

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

Если ваша аудитория распространяется по всему миру, то имеет смысл использовать коммерческое решение CDN вместо того, чтобы покупать серверы и пропускную способность по всему миру. Только горстка компаний имеет деньги и опыт для создания такой сети. Google сделал это, Netflix делает это, но если вы не настолько большой, нет никакого экономического смысла в создании вашей собственной CDN, и вам лучше воспользоваться одним из коммерческих провайдеров CDN. Ведущими 3 провайдерами первого уровня являются Akamai, Limelight и EdgeCast.

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

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

если предположить, что static.shirtofholland.com используется для обслуживания статических объектов (images, js, css ...), тогда вам просто нужно создать это cname, дать CDN знать, где находится сервер Origin (чтобы он мог извлекать статический контент и кэшируйте его по краям) и, наконец, обновите свою зону DNS, чтобы указать это статическое имя для вашего поставщика CDN. В качестве альтернативы вы можете использовать URL-адрес CDN напрямую (предоставляется вашим CDN). Это не очень элегантно, но это работает.

Другим важным аспектом, который следует учитывать при рассмотрении улучшения производительности, являются следующие:

  • DNS - ваш текущий провайдер DNS достаточно быстрый и надежный? Использование поставщика управляемых DNS будет иметь большое значение и не будет стоить много денег.

  • CDN для доставки статических объектов

  • ADN или DSA для ускорения динамического контента (без кэширования). Это значительно повысит производительность любого сайта электронной коммерции, но это относительно дорого (в отличие от CDN, который очень доступен).

  • FEO или Front End Optimization, которые могут быть выполнены либо путем оптимизации кода (см. Бестселлер Souders's O'Reilly, высокопроизводительные веб-сайты), либо с помощью коммерческого решения, которое будет применять эти правила FEO (и более) на лету к вашему сайт. Обычно это делается поверх динамического ускорения.

Laurent
источник