|
Разгоняем CMS: дешево и сердито.
15.09.2008 20:15
Автор: Николай Мациевский Источник: webo.in
Данный обзор делался исключительно для презентации на конференции iCamp'2008. Автор проанализировал наиболее распространенных в Рунете CMS и привел информацию по ускорению их загрузки. Демо-версия, практически, никакой информации не дала, поэтому далее информация (цитаты) лично от директора. Gzip для HTMLВ версии 4.0 этой функцией можно управлять из настроек системы. Просто поставить галочку в поле «Использовать GZip-сжатие страниц» и если браузер человека поддерживает такую функцию, то и CMS и страницы сайта будут использовать GZip. Если на одной CMS собрано несколько сайтов, настройка отдельна для каждого сайта.
CSS/JS сжатие/минимизацияНе применяется. Только руками верстальщика. В нашей CMS человек сам вставляет HTML, CSS и JS в том виде, в котором они были сверстаны.
Кеширование
Насколько удалось установить, наиболее корректно отдается Last-Modified для HTML. Все остальное покрыто мраком. CSS Sprites / параллельные хостыНет и не планируется.
Проверялась демо-версия, доступная с официального сайта. Также была попытка установить пакет с сайта. В него не удалось залогиниться. Включаем кешированиеОно включается в настройках Модули -> Конфигурация -> Глобальные -> Разрешить браузерам кешировать страницы. В серверные заголовки при этом добавляется Last-Modified. Цитата из документации: Если эта опция включена, то браузер пользователя будет вначале проверять, изменилась ли страница, и если страница не менялась, то загрузит ее из локального кэша. При этом браузеру будет посылаться HTTP-заголовок Last-Modified, который содержит дату последнего изменения страницы. Эта опция поможет значительно снизить нагрузку на трафик и позволит быстрее открывать страницы.
Подключаем зеркала для ускорения выдачи статикиМодули -> Конфигурация -> Домены, выбираем наш домен и жмем Зеркала. На открывшейся странице можно добавить еще несколько (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
Выяснить через техническую поддержку, можно ли это как-то автоматически прикрутить к существующим модулям, не удалось. Наверное, никак. Сжатие и минимизация CSS/JSЦитирую службу поддержки: Возможно реализовать, но это будут уже custom-ные решения для UMI.CMS. Вы можете сделать их самостоятельно или с помощью сторонних разработчиков.
Для тестирования бралась демо-версия с demo.bloggyland.com. Очень много советов по оптимизации приведено здесь, где автор разбирает все правила из YSlow применительно к Drupal. Я лишь попытаюсь дополнить своими собственными. Склейка CSS-файловЕще во время своего первого знакомства с Drupal порадовался наличию возможности объединять десятки CSS-файлов для различных модулей (и затем кешировать результат). Включается это через Administer -> Site Configuration -> Performace. Эта настройка также автоматически минимизирует файл (регулярными выражениями). Склейка JS-файловНе Доступна в базовой поставке (Drupal 6, спасибо за комментарий adek), и нам поможет модуль Javascript Aggregator. Делает, в принципе, то же самое, что и предыдущий вариант, но уже для JavaScript-файлов. К тому же есть настройка для минимизации их размера (на основе обычных регулярных выражений, это дает от 80% возможного прироста производительности).
GzipВключается автоматически (не нашел, где включается в настройках, но все Drupal-сайты уже отдавали HTML в сжатом виде). Для CSS/JS-файлов добавляется (по всей видимости) двумя вышеупомянутыми решениями. Навскидку никаких проблем замечено не было. КешированиеДля статики и HTML-файлов настраивается в Administer -> Settings -> Cache Settings. CSS Sprites, CDN, etcК сожалению, все остальные плюшки уже приходится создавать вручную (либо соответствующие модули находятся в стадии разработки). Однако, уже вышеперечисленного списка вполне хватит для создания производительного сайта на Drupal.
Некогда весьма популярная CMS сейчас как-то меньше мелькает в обзорах. Однако, сайтов на ней порядочно, и сообщество просто громадно. Настройки проверялись на имеющихся сайтах. GzipДля HTML-файлов добавляется в Общие настройки -> Сервер -> GZIP-сжатие страниц. Gzip для CSS/JS не предусмотрен. Склейка, минимизация и кеширование CSS/JS-файловВ базовой конфигурации нет. Удалось найти следующее расширение (Cache accelerate component), которое дополнительно позволяет дополнительно кешировать (и архивировать) CSS/JS-файлы. Однако, не все ладно с серверными заголовками. Использовать стоит с осторожностью: возможны проблемы с совместимостью. Также попутно был обнаружен PHP Speedy plugin для Joomla, который позволяет делать то же самое, но с серверными заголовками у него все в порядке. В общем, рекомендуется к использованию. Etc.К сожалению, информации об остальных оптимизационных плюшках еще меньше. Если у кого-то есть соображения, поделитесь, пожалуйста, в комментариях.
В качестве заключенияАбсолютно все CMS показали небогатый набор инструментов для клиентской оптимизации. Лучше всего с этим дело обстоит у открытых CMS, которые во многом развиваются за счет комьюнити.
Комментарии
Добавить комментарий
|
|