. Ускорение сайта с помощью mod_pagespeed от Google | Makarou.com - когда сайты превращаются в бизнес

Ускорение сайта с помощью mod_pagespeed от Google

mod_pagespeedПриветствую вас, друзья! Сегодня я хочу продолжить предыдущую тему по ускорению сайта. На этот раз я расскажу вам про новую разработку компании Google. А именно, про модуль mod_pagespeed для сервера Apache.

Не так давно, всеми известный Google анонсировал новый модуль для apache, который по их заявлениям увеличивает скорость загрузки сайта на 50%. Честно сказать у себя на блоге я разницу не заметил, так как блог грузится и так очень быстро – «быстрее некуда». Но я не остановился для тестирования mod_pagespeed только на своем блоге. Я решил установить этот модуль еще и на блог своего друга — Сергея Сосновского, у которого просто туча плагинов для wordpress установлено, и блог грузится около 1.5 секунд.

После установки mod_pagespeed, скорость загрузки его блога увеличилась на 50-60%, и равняется 0.6 – 0.7 сек. Думаю не плохой результат, так как помимо увеличения скорости загрузки, все 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

На этом настройка и установка окончательно закончена. А вы себе поставили такой модуль? :) И напоследок видео показывающее работу модуля. Также, если у вас появляются вопросы, то задавайте их в комментариях — я постараюсь ответить.

Администрирование

Понравился пост? добавь его к себе в закладки:
Хочешь быть всегда в курсе обновлений блога? подписывайся через: