Начало работы с модулем mod_pagespeed в Ubuntu и Debian

На данный момент mod_pagespeed является одним из наиболее популярных модулей Apache. Это выходной фильтр для Apache 2.2 +, который можно настроить с помощью различных опций через конфигурационные файлы или файл .htaccess. Выходной фильтр – это фильтр, который преобразовывает данные перед отправкой клиенту. Другими словами, это слой между самим сайтом и теми данными, которые получает посетитель, открывая URL сайта в браузере.

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

Установка mod_pagespeed

Установка mod_pagespeed – очень простой процесс, зависящий от используемой операционной системы. В системах Ubuntu и Debian есть пакеты, которые можно просто загрузить и установить (они доступны в любом дистрибутиве Linux, который использует пакеты .deb). В других дистрибутивах Linux можно скачать исходный и скомпилировать модуль.

Для 64-битной версии системы:

wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb

Если используется 32-битная версия (нежелательно):

wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb
sudo dpkg -i mod-pagespeed-*.deb
apt-get -f install

Затем удалите загруженный пакет.

rm mod-pagespeed-*.deb

Примечание: установка модуля из исходного кода выходит за рамки этой статьи.

Данный модуль активируется автоматически сразу после установки. Тем не менее, для его корректной работы необходимо перезапустить веб-сервер Apache:

service apache2 restart or /etc/init.d/apache2 restart

Готово! Теперь модуль mod_pagespeed установлен и запущен на на виртуальном выделенном сервере. В этом можно убедиться, посмотрев на заголовки ответа страницы; там должно появиться значение X-Mod-Pagespeed с номером установленной версии.

Инсталляционный пакет обрабатывает множество конфигураций «из коробки». В целом, в Apache для этого модуля есть специальные краткие настройки по умолчанию, которые включаются автоматически. Версия модуля, которая будет установлена и активирована, определяется в зависимости от используемой версии Apache. Так, при работе с Apache 2.2 будет установлен mod_pagespeed.so; для Apache 2.4 устанавливается mod_pagespeed_ap24.so.

Примечание: mod_pagespeed работает в Apache 2.2 и выше. Кроме того, Apache 2.4.1 не может использовать данный модуль из-за ошибки в программе. Потому необходимо использовать Apache 2.4.2+.

Кроме того, к установке Apache были добавлены конфигурационные файлы. Основным конфигурационным файлом является pagespeed.conf, который находится в:

/etc/apache2/mods-available/

Настройка модуля mod_pagespeed

В целом, модуль уже готов к работе, потому при желании можно не выполнять дальнейшие действия, описанные данным руководством. Настройки  mod_pagespeed по умолчанию достаточно хороши; тем не менее, в настройках модуля есть несколько уловок, которые помогут повысить производительность сайта. Конечно, это достаточно важный момент; разные настройки дадут каждому сайту разные результаты, потому рекомендуется поэкспериментировать и подобрать лучшие настройки для сайта в индивидуальном порядке.

В рамках данного руководства рассматривается несколько наиболее общих настроек.

Способы настройки mod_pagespeed

Существует несколько способов настройки mod_pagespeed. Например, можно использовать ранее упомянутый файл pagespeed.conf, чтобы настроить его для всего сервера. Также можно поместить параметры конфигурации в директиве VirtualHost для виртуального хоста/сайта Apache. Кроме того, можно указать директивы в файле .htaccess (что обычно делается для mod_rewrite).

Наименее производительным из всех этих вариантов является файл .htaccess, поскольку его нужно загружать при каждом запросе. Файл pagespeed.conf загружается вместе с веб-сервером Apache, что делает его идеальным местом для хранения настроек модуля.

Использование директивы VirtualHost также предпочтительнее файла .htaccess (по той же причине). Это отличный вариант для хранения индивидуальных настроек конкретного сайта.

Для редактирования конфигурационных файлов можно использовать любой текстовый редактор. В данном руководстве используется nano.

Чтобы отредактировать главный конфигурационный файл, используйте команду:

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

Основные настройки

В общем, параметры файла pagespeed.conf довольно хорошо задокументированы. Также существует большой список примеров фильтров (на сайте http://www.modpagespeed.com). Ниже приведено несколько общих настроек, с которыми можно поэкспериментировать, чтобы оптимизировать производительность сайта.

Включение/выключение mod_pagespeed

Прежде всего, можно включить или выключить модуль при помощи опции ModPagespeed.

ModPagespeed on

или

ModPagespeed off

Уровни Rewrite

С целью упростить конфигурирование модуль позволяет указывать уровни настроек. По умолчанию устанавливается CoreFilters. Он содержит набор фильтров, который команда Google считает безопасным для использования. Фильтры – это индивидуальные действия, которые применяются к файлу. В общем, вряд ли придется менять это значение. Проще использовать значение по умолчанию, при необходимости включая или отключая фильтры с помощью директив ModPagespeedEnableFilters и ModPagespeedDisableFilters.

Значение по умолчанию:

ModPagespeedRewriteLevel CoreFilters

Чтобы отключить CoreFilters, используйте:

ModPagespeedRewriteLevel PassThrough

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

Использование уровня CoreFilters включает в себя ряд некоторых фильтров по умолчанию. По состоянию на момент написания этой статьи данный уровень включает в себя:

add_head
combine_css
convert_jpeg_to_progressive
convert_meta_tags
extend_cache
flatten_css_imports
inline_css
inline_import_to_link
inline_javascript
rewrite_css
rewrite_images
rewrite_javascript
rewrite_style_attributes_with_url

Несомненно, позже будут добавлены новые фильтры. При использовании CoreFilters все эти фильтры включаются автоматически (если сделать их частью набора по умолчанию при обновлении mod_pagespeed). PassThrough потребует явно включить новые фильтры.

Включение фильтров

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

Итак, если нужно включить определенный фильтр для каждого сайта, это можно сделать в конфигурационном файле виртуального хоста или в файле .htaccess (вместо главного файла pagespeed.conf).

Ниже приведен пример включения фильтров Pedantic (который добавляет атрибуты type в теги стилей и скриптов) и Remove Comment (который удаляет все комментарии HTML):

ModPagespeedEnableFilters pedantic,remove_comments

Отключение фильтров

Также можно отключать фильтры в индивидуальном порядке. Список фильтров, которые нужно отключить, похож на список директивы:

ModPagespeedEnableFilters

Следующий пример кода отключает фильтр Convert JPEG to Progressive (даже если он является частью набора CoreFilters):

ModPagespeedDisableFilters convert_jpeg_to_progressive

Определение переписанных URL-адресов

По умолчанию mod_pagespeed переписывает все, что он может переписать. Следующая директива позволяет исключить некоторые файлы (например, библиотеки Javascript):

ModPagespeedDisallow "*/jquery-ui-*.min.js"

Это отключит перезапись любых файлов, которые соответствуют заданному шаблону (в данном случае это JQuery UI).

Также можно выключить перезапись всех файлов по умолчанию и включить файлы, которые нужно переписать, вручную. Для этого можно использовать строки:

ModPagespeedDisallow "*"
ModPagespeedAllow "http://*some-site.com/*/styles/*.css"
ModPagespeedAllow "http://*some-site.com/*.html"
ModPagespeedDisallow "*/notrewritten.html"

Порядок выполнения означает, что все файлы на some-site.com, оканчивающиеся на .html, будут переписаны. Последняя директива (Disallow) означает, что любые URL-адреса, соответствующие этому шаблону, не будут переписаны, потому что это перекрывает предыдущую настройку.

Перезапуск Apache

Помните о том, что при использовании файлов pagespeed.conf или VirtualHost необходимо перезапускать Apache, чтобы активировать изменения. Для этого используйте команду:

service apache2 restart

или

/etc/init.d/apache2 restart

Итоги

Данное руководство знакомит с азами использования модуля mod_pagespeed. Конечно, далеко не все существующие общесерверные и индивидуальные настройки и директивы были охвачены. Кроме того, модуль mod_pagespeed находится на стадии активной разработки. Чтобы получить более подробную информацию, посетите http://www.modpagespeed.com.

Не забывайте проверять официальный сайт модуля: https://developers.google.com/speed/pagespeed/mod.

Tags: , , , , , ,

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