Добро пожаловать.

(4212) 24-24-29
г. Хабаровск,
ул. Ким Ю Чена, д. 38,
оф. 203.
studio@khvweb.com
211-028-011
Рады видеть Вас в блоге нашей студии! Здесь мы копим нужную, а иногда просто интересную информацию о создании сайтов. Категории:
Статьи
Новости Интернета
Новости студии
Обзоры
Публикации


Главная » Блог

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


На этот раз я расскажу вам про новую разработку компании Google. А именно, про модуль mod_pagespeed для сервера Apache.

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

После установки 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 протоколу. После подключения к серверу, нам нужно прописать команду для скачивания и установки модуля на 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

На этом настройка и установка окончательно закончена. А вы себе поставили такой модуль? :)

Теги: Google, Хостинг, Apache

Комментарии