Статьи

Оптимизация стала проще благодаря mod_pagespeed

Большое объявление на прошлой неделе от людей из 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 .