Большое объявление на прошлой неделе от людей из Google: они выпустили новый модуль для веб-сервера Apache: mod_pagespeed. mod_pagespeed объединяет кучу оптимизаций скорости страницы на стороне сервера в один простой в использовании модуль. При соответствующих параметрах конфигурации он сжимает и объединяет ваши файлы CSS и JavaScript, оптимизирует настройки кэширования, удаляет комментарии и пробелы в ваших файлах, оптимизирует изображения и т. Д. Давайте рассмотрим это быстро, не так ли?
Установка
Модуль mod_pagespeed доступен в виде простого устанавливаемого пакета. Это хорошая новость: вам не нужно перекомпилировать Apache из исходного кода, чтобы использовать его. На данный момент он доступен для систем CentOS / Fedora и Ubuntu / Debian, будь то 32-разрядные или 64-разрядные. Для целей этого пошагового руководства я буду использовать Ubuntu, но вы можете найти инструкции по установке CentOS / Fedora на странице загрузок. Загрузите файл .deb, затем запустите (при условии, конечно, что у вас уже установлен Apache 2.2) :
sudo dpkg -i mod_pagespeed_*.debsudo apt-get -f install
Теперь вам просто нужно перезапустить Apache, чтобы включить новый модуль:
sudo /etc/init.d/apache2 restart
конфигурация
По умолчанию все фильтры mod_pagespeed отключены, так что вы на самом деле ничего не увидите. Чтобы исправить это, нам нужно отредактировать его файл конфигурации. По умолчанию (в системах на основе Ubuntu или Debian) это будет находиться в /etc/apache2/mods-available/pagespeed.conf. В самом верху этого файла вы увидите что-то вроде:
<IfModule pagespeed_module> SetOutputFilter MOD_PAGESPEED_OUTPUT_FILTER ModPagespeed on
Это хорошо! Если вы видите, что ModPagespeed выключен, измените его на «вкл», прежде чем идти дальше. Чуть дальше вниз по файлу (строка 29 в версии, которая у меня есть), вы увидите закомментированную строку, подобную этой:
# ModPagespeedRewriteLevel CoreFilters
Как объясняется в блоке комментариев над этой строкой, уровень перезаписи CoreFilters по умолчанию предоставит вам базовый набор оптимизаций, которые безопасны для большинства веб-страниц. Раскомментируйте это и перезапустите сервер Apache. Теперь, если вы загружаете какие-либо страницы с вашего сервера, вы должны заметить, что происходит несколько вещей. Например, несколько небольших CSS-файлов будут объединены в один тег на вашей странице. mod_pagespeed хорошо разбирается в том, как он справляется с этим: он взвешивает потенциальную ценность кэширования, которая может быть получена при раздельном обслуживании файлов CSS, и стоимости этих дополнительных HTTP-запросов. Таким образом, только файлы определенного размера или большего размера будут встроены таким образом (конечно, вы можете настроить этот порог размера самостоятельно). Эти фильтры довольно консервативны, поэтому давайте включим еще немного! Еще дальше вниз по файлу conf (строка 46 для меня), есть такая строка:
# ModPagespeedEnableFilters collapse_whitespace,elide_attributes
Объявление ModPagespeedEnableFilters
просто принимает список фильтров, разделенных запятыми, которые вы хотите включить. По умолчанию он записывается с помощью collapse_whitespace
(который, как следует из названия, elide_attributes
лишние пробельные символы в ваших HTML-файлах) и elide_attributes
. Это последний хитрый (и показатель того, насколько серьезно Google относится к подсчету байтов): он укоротит любые атрибуты HTML, которые не имеют никакого значения для браузера. Так, например, disabled="disabled"
работает точно так же, как и просто disabled
, поэтому mod_pagespeed изменит первый на второй. type="text"
— это значение по умолчанию для элементов input
, поэтому mod_pagespeed удалит его полностью. Как только вы удалите комментарий к этой строке, вы можете поэкспериментировать со всеми другими доступными фильтрами, заштриховав их до конца. Есть remove_comments
, который удаляет комментарии из вашего HTML (но достаточно умен, чтобы не удалять ваши условные комментарии IE). Существует optimize_images
, который масштабирует, повторно сжимает и удаляет метаданные из изображений, загруженных с помощью тегов img. Для полностью одержимых среди вас есть даже remove_quotes
, которая удаляет ненужные кавычки вокруг атрибутов HTML (поэтому class="description"
станет class=description
). Полный список доступных фильтров и описания того, как они работают и как их использовать они доступны на странице кода Google проекта
Что еще?
В mod_pagespeed также есть несколько простых способов отслеживать статистику в отношении производительности страницы. Чтобы сделать это, он вставляет крошечные фрагменты JavaScript в верхнюю и нижнюю части ваших страниц и использует их для отправки отчетов на сервер о времени загрузки. Таким образом, вы можете измерить эффекты различных фильтров и решить, какие из них вы бы хотели использовать. Так что вы будете торопиться с установкой mod_pagespeed на своих серверах?
Если вы хотите узнать больше от Луи, подпишитесь на нашу еженедельную техническую новостную рассылку Tech Times .