Разгоняем CMS: дешево и сердито.

15.09.2008 20:15

Автор: Николай Мациевский
Источник: webo.in

Данный обзор делался исключительно для презентации на конференции iCamp'2008. 
Автор проанализировал наиболее распространенных в Рунете CMS и привел информацию по ускорению их загрузки.

S.Builder

Демо-версия, практически, никакой информации не дала, поэтому далее информация (цитаты) лично от директора.

  1. Gzip для HTML

    В версии 4.0 этой функцией можно управлять из настроек системы. Просто поставить галочку в поле «Использовать GZip-сжатие страниц» и если браузер человека поддерживает такую функцию, то и CMS и страницы сайта будут использовать GZip. Если на одной CMS собрано несколько сайтов, настройка отдельна для каждого сайта.

  2. CSS/JS сжатие/минимизация

    Не применяется. Только руками верстальщика.

    В нашей CMS человек сам вставляет HTML, CSS и JS в том виде, в котором они были сверстаны.

  3. Кеширование

    Насколько удалось установить, наиболее корректно отдается Last-Modified для HTML. Все остальное покрыто мраком.

     
  4. CSS Sprites / параллельные хосты

    Нет и не планируется.

UMI.CMS

Проверялась демо-версия, доступная с официального сайта. Также была попытка установить пакет с сайта. В него не удалось залогиниться.

  1. Включаем кеширование

    Оно включается в настройках Модули -> Конфигурация -> Глобальные -> Разрешить браузерам кешировать страницы. В серверные заголовки при этом добавляется Last-Modified. Цитата из документации:

    Если эта опция включена, то браузер пользователя будет вначале проверять, изменилась ли страница, и если страница не менялась, то загрузит ее из локального кэша. При этом браузеру будет посылаться HTTP-заголовок Last-Modified, который содержит дату последнего изменения страницы. Эта опция поможет значительно снизить нагрузку на трафик и позволит быстрее открывать страницы.

  2. Подключаем зеркала для ускорения выдачи статики

    Модули -> Конфигурация -> Домены, выбираем наш домен и жмем Зеркала. На открывшейся странице можно добавить еще несколько (2–4) хоста для выдачи статики. Например, у нас был домен

    endocardial.demo-pro.umi-cms.ru

    мы добавляем еще 4 хоста

    01	i1.endocardial.demo-pro.umi-cms.ru
    02 ...
    03 i4.endocardial.demo-pro.umi-cms.ru

    и теперь все картинки можно отдавать еще и таким образом

    01	http://i1.endocardial.demo-pro.umi-cms.ru/images/cms/thumbs/picture2_50_50.jpg

    Выяснить через техническую поддержку, можно ли это как-то автоматически прикрутить к существующим модулям, не удалось. Наверное, никак.

  3. Сжатие и минимизация CSS/JS

    Цитирую службу поддержки:

    Возможно реализовать, но это будут уже custom-ные решения для UMI.CMS. Вы можете сделать их самостоятельно или с помощью сторонних разработчиков.

Drupal

Для тестирования бралась демо-версия с demo.bloggyland.com. Очень много советов по оптимизации приведено здесь, где автор разбирает все правила из YSlow применительно к Drupal. Я лишь попытаюсь дополнить своими собственными.

  1. Склейка CSS-файлов

    Еще во время своего первого знакомства с Drupal порадовался наличию возможности объединять десятки CSS-файлов для различных модулей (и затем кешировать результат). Включается это через Administer -> Site Configuration -> Performace. Эта настройка также автоматически минимизирует файл (регулярными выражениями).

  2. Склейка JS-файлов

    Не Доступна в базовой поставке (Drupal 6, спасибо за комментарий посмотреть профиль adek), и нам поможет модуль Javascript Aggregator. Делает, в принципе, то же самое, что и предыдущий вариант, но уже для JavaScript-файлов. К тому же есть настройка для минимизации их размера (на основе обычных регулярных выражений, это дает от 80% возможного прироста производительности).

  3. Gzip

    Включается автоматически (не нашел, где включается в настройках, но все Drupal-сайты уже отдавали HTML в сжатом виде). Для CSS/JS-файлов добавляется (по всей видимости) двумя вышеупомянутыми решениями. Навскидку никаких проблем замечено не было.

  4. Кеширование

    Для статики и HTML-файлов настраивается в Administer -> Settings -> Cache Settings.

  5. CSS Sprites, CDN, etc

    К сожалению, все остальные плюшки уже приходится создавать вручную (либо соответствующие модули находятся в стадии разработки). Однако, уже вышеперечисленного списка вполне хватит для создания производительного сайта на Drupal.

Joomla

Некогда весьма популярная CMS сейчас как-то меньше мелькает в обзорах. Однако, сайтов на ней порядочно, и сообщество просто громадно. Настройки проверялись на имеющихся сайтах.

  1. Gzip

    Для HTML-файлов добавляется в Общие настройки -> Сервер -> GZIP-сжатие страниц. Gzip для CSS/JS не предусмотрен.

  2. Склейка, минимизация и кеширование CSS/JS-файлов

    В базовой конфигурации нет. Удалось найти следующее расширение (Cache accelerate component), которое дополнительно позволяет дополнительно кешировать (и архивировать) CSS/JS-файлы. Однако, не все ладно с серверными заголовками. Использовать стоит с осторожностью: возможны проблемы с совместимостью.

    Также попутно был обнаружен PHP Speedy plugin для Joomla, который позволяет делать то же самое, но с серверными заголовками у него все в порядке. В общем, рекомендуется к использованию.

  3. Etc.

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

В качестве заключения

Абсолютно все CMS показали небогатый набор инструментов для клиентской оптимизации. Лучше всего с этим дело обстоит у открытых CMS, которые во многом развиваются за счет комьюнити.



Комментарии

    1
    Здорово http://www.cmslist.ru. Если конечно кого то интерисует мое мнение то не мешало бы фотографий или иллюстраций поболее. Чего вы стесняетесь ребята, вас читают!
    Незарегистрированный пользователь
    Pavlovish (Гость)
    05.05.2009 в 20:33


    2
    Много изучал разных форумов, и так и не нашёл подходящего ответа, подскажите где скачать ?
    Незарегистрированный пользователь
    TuIOpo (Гость)
    27.05.2009 в 20:58





      Добавить комментарий

      Чтобы написать Ваш комментарий необходимо зарегистрироваться или авторизоваться на сайте



      Комментарии Facebook



      Комментарии ВКонтакте

      01.02.12 | Habrahabr
      CMS / Axis — интернет магазин своими руками

      Добрый день Хабр,<br/> <br/> Хочу познакомить пользователей Хабра с проектом над которым работает наша небольшая команда. Axis — это CMS для создания интернет магазинов под открытой ...

      Перейти к новости

      25.01.12 | CMS Magazine
      Владельцы сайтов смогут участвовать в конкурсе "Рейтинг Рунета – 2011"

      Конкурс "Рейтинг Рунета" становится открытым для всех сайтов. В этом году заявку на участие в конкурсе могут подать не только профессиональные веб-разработчики, но и владельцы сайтов.

      Перейти к новости

      24.01.12 | NetCat
      NetCat объявляет конкурс

      Конкурс для конкурса "Рейтинга Рунета".

      Перейти к новости

      20.01.12 | UMI.CMS
      Как монетизировать «ненужных» клиентов

      <p>Думаю, каждый руководитель веб-студии задавался этим вопросом.</p> <p>Я посвятил много времени размышлениям и экспериментам, еще когда работал руководителем веб-студии. И сейчас в ...

      Перейти к новости



      Яндекс цитирования
      Разработка сайта:Разработка сайтов: ЮМИ Студияumistudio.
      Интернет-агентство свежих идей.
      Сайт работает на UMI.CMS
      По всем вопросам обращайтесь на admin@cmslist.ru
      © 2003—2012 CMS List. Перепечатка материалов
      возможна только с письменного разрешения редакции
      Контакты · Добавить CMS
      Реклама · Условия перепечатки