В прошлом году Google в рамках своих инициатив по ускорению веб проектов представила свой инструмент для разработчиков Page Speed. Теперь же для упрощения труда разработчиков и вебмастеров Google предлагает нам новый инструмент.

Сегодня Google представила новый модуль для Apache под названием mod_pagespeed. По словам разработчиков время загрузки страницы удалось уменьшить на 50 процентов, а на отдельных проектах эта цифра значительно выше.

Сравнительная демонстрация с включенным модулем и без него:

Ссылка для скачивания

Поддерживаемые ОС:

  • CentOS/Fedora (32-bit and 64-bit)
  • Debian/Ubuntu (32-bit and 64-bit)

Модуль представляет из себя набор фильтров, каждый из них и примеры использования представлены и описаны в Документации. Применять и использовать модули следует исходя из потребностей своего проекта, у каждого фильтра есть свои особенности, которые следует учесть при использовании, обращая внимание на раздел «Risks» в их документации.

Я решил установить этот модуль еще и на сайт одного из своих клиентов, у которого просто туча обработок при генерации контента на 1С Битрикс.

После установки mod_pagespeed, скорость загрузки его сайта увеличилась на 50-60%. Думаю не плохой результат, так как помимо увеличения скорости загрузки, все javascript скрипты и css стили сжимаются до невероятных размеров, и превращаются на выходе в один файл для javascript и css соответственно. Так что смело можно заявлять, что ускорение сайта с помощью нового модуля для apache от google дает неплохие результаты.

Теперь я непосредственно расскажу вам о том, что именно делает данный модуль с сайтом.

Возможности mod_pagespeed:

  • Добавление задержки при загрузке сайта, на стороне клиента.
  • Улучшение кэширование страниц.
  • Удаление ненужных (лишних) пробелов в html коде.
  • Объединение нескольких css файлов в один.
  • Объединение нескольких html тегов head в один.
  • Перемещение css стилей в html тег head.
  • Удаление ненужных атрибутов в тегах html документа.
  • Перемещение маленьких css стилей в html документ.
  • Перемещение больших css стилей из html документа в css файл.
  • Перемещение маленьких javascript скриптов в html документ.
  • Перемещение больших javascript скриптов из html документа в javascript файл.
  • Удаление ненужных кавычек из тегов html документа.
  • Удаление html комментариев.
  • Сжатие и компрессия изображений.
  • Очищение css стилей от комментариев, пробелов и сокращение названий цветов.
  • Очищение javascript скриптов от комментариев и пробелов.
  • Добавление тега head в html документ при его отсутствии.
  • Удаление сценариев из html документа.

Как видите, возможностей у данного модуля много, и все они заменяют работу обычных скриптов для разгрузки системы. Теперь, когда я вас ознакомил со всеми возможностями, мы можем перейти к установке этого модуля на vps, vds под управлением Ubuntu, Debian.

Загружаем программу для доступа к серверу по ssh протоколу. Для этого я пользуюсь программой Putty, суть и пример работы, с которой я описывал в статье про установку ispmanager. После подключения к серверу, нам нужно прописать команду для скачивания и установки модуля на apache.

Пишем в терминале следующие команды (после каждой команды жмем enter).

Для 32-х битных систем:

cd ~
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_i386.deb

Для 64-х битных систем:

cd ~
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb

После выполнения этих команд, которые скачивают дистрибутив модуля на сервер, мы переходим к его установке.

Пишем в терминале следующую команду:

sudo dpkg -i mod-pagespeed*.deb

В процессе установки, может понадобиться нажать кнопку «Y» – это согласие на установку пакета и проведение необходимых стандартных настроек.

Теперь, начинается самое интересное. Мы будем настраивать конфигурационный файл модуля так, как захотим.

Конфигурационный файл модуля должен быть расположен тут:

/etc/apache2/mods-available/pagespeed.conf

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

Конфигурационный файл:

ModPagespeed on
ModPagespeedDomain http://my_site.com
AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html
ModPagespeedFileCachePath       "/var/mod_pagespeed/cache/"
ModPagespeedGeneratedFilePrefix "/var/mod_pagespeed/files/"
ModPagespeedRewriteLevel PassThrough
# ModPagespeedEnableFilters add_head
# ModPagespeedEnableFilters add_instrumentation
ModPagespeedEnableFilters extend_cache
ModPagespeedEnableFilters collapse_whitespace
ModPagespeedEnableFilters combine_css
# ModPagespeedEnableFilters combine_heads
ModPagespeedEnableFilters move_css_to_head
ModPagespeedEnableFilters elide_attributes
ModPagespeedEnableFilters inline_css
ModPagespeedEnableFilters inline_javascript
ModPagespeedEnableFilters outline_css
ModPagespeedEnableFilters outline_javascript
ModPagespeedEnableFilters remove_quotes
ModPagespeedEnableFilters remove_comments
ModPagespeedEnableFilters rewrite_css
ModPagespeedEnableFilters rewrite_images
ModPagespeedEnableFilters insert_img_dimensions
ModPagespeedEnableFilters rewrite_javascript
# ModPagespeedEnableFilters strip_scripts

Как обычно, расскажу «что есть что» и с чем его едят.

ModPagespeed

Включение и отключение модуля. Значения on и off соответственно.

ModPagespeedDomain

Использование модуля только для определенного сайта.

AddOutputFilterByType

Устанавливает обработчик и тип выходных данных.

ModPagespeedFileCachePath

Директория хранения файлов кэша

ModPagespeedRewriteLevel PassThrough

Отключает базовый набор фильтров, который по умолчанию использует модуль, и которые безопасны для большинства сайтов.

ModPagespeedGeneratedFilePrefix

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

Теперь идет самое интересное – фильтры. Для их включения используется директива –ModPagespeedEnableFilters, а для выключения директива – ModPagespeedDisableFilters. Фильтры можно подключать и отключать по одному и более.

Примеры:

ModPagespeedEnableFilters filter1
ModPagespeedEnableFilters filter1,filter2
ModPagespeedDisableFilters filter1
ModPagespeedDisableFilters filter1,filter2

Далее расскажу какие фильтры есть и за что отвечает каждый из них.

add_head

Фильтр добавляет тег head в html документ при его отсутствии.

add_instrumentation

Фильтр добавляет задержку при загрузке сайта, на стороне клиента.

extend_cache

Фильтр улучшает кэширование ресурсов сайта: картинки, контент, сss, js.

collapse_whitespace

Фильтр удаляет ненужные пробелы из html кода.

combine_css

Фильтр объединяет несколько css файлов в один.

combine_heads

Фильтр объединяет нескольких html тегов head в один.

move_css_to_head

Фильтр перемещает css стили в html тег head.

elide_attributes

Фильтр удаляет ненужные атрибуты в тегах html документа.

inline_css

Фильтр перемещает маленькие css стили в html документ.

inline_javascript

Фильтр перемещает маленькие javascript скрипты в html документ.

outline_css

Фильтр перемещает большие css стили из html документа в css файл.

outline_javascript

Фильтр перемещает большие javascript скрипты из html документа в javascript файл.

remove_quotes

Фильтр удаляет ненужные кавычки из тегов html документа.

remove_comments

Фильтр удаляет html комментарии.

rewrite_css

Фильтр очищает css стили от комментариев, пробелов и сокращает название цветов.

rewrite_images

Фильтр сжимает изображения. Использует для этого компрессию с помощью библиотек libjpeg, libpng и сжатие с помощью OpenCV.

insert_img_dimensions

Фильтр добавляет атрибуты высоты и ширины для изображений.

rewrite_javascript

Фильтр очищает javascript скрипты от комментариев и пробелов.

strip_scripts

экспериментальный фильтр который удаляет сценарии из html документа. Пока не понятно для чего его использовать, но нарушает функциональность это точно.

Вот в принципе и все фильтры, которые доступны на данный момент. С остальными настройками вы можете ознакомиться на сайте google. Кстати говоря, пока доступна, только, бета версия mod_pagespeed и только на apache 2, но могу с уверенностью сказать, что глюков я пока не замечал.

После редактирования конфигурационного файла, нам нужно перезагрузить apache. Пишем в терминале следующую команду:

/etc/init.d/apache2 restart

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

Комментарии

comments powered by Disqus