mod_pagespeed Настройка
Включение модуля mod_pagespeed
mod_pagespeed использует Apache-«выходной фильтр» плюс несколько обработчиков содержимого.
Примечание: Местоположение файла конфигурации зависит от дистрибутива Linux, на котором установлен mod_pagespeed.
В Debian/Ubuntu Linux дистрибутивах, файл конфигурации находится в:
/etc/apache2/mods-available/pagespeed.conf
В CentOS/Fedora, путь будет такой:
/etc/httpd/conf.d/pagespeed.conf
mod_pagespeed директивы конфигурации начинаются и заканчиваются командой IfModule:
<IfModule pagespeed_module> .... </IfModule>
Настройка обработчиков
mod_pagespeed содержит три обработчика:
Обработчик по умолчанию для обслуживания оптимизированных ресурсов.
mod_pagespeed_statistics: показывает статистику сервера с момента запуска, из которого можно вычислить среднюю задержку и таким образом измерить эффективность различных правил.
mod_pagespeed_beacon: часть инфраструктуры, мы предоставляем для измерения задержки страницы.
Следующие параметры для обработчиков могут использоваться в качестве ориентира:
# Раскомментируйте следующую строку, если вы хотите полностью отключить статистику.
ModPagespeedStatistics off
# Эта строка показывает статистику о модуле mod_pagespeed.
<Location /mod_pagespeed_statistics> Order allow,deny
# можно вставлять другие команды «Allow from» для добавления узлов которым разрешено смотреть статистику.
Allow from localhost Allow from 127.0.0.1 SetHandler mod_pagespeed_statistics </Location>
# Обработчик клиентских обратных вызовов которые вводят в add_instrumentation filter.
<Location /mod_pagespeed_beacon> SetHandler mod_pagespeed_beacon </Location>
Настройка фильтра вывода
Выходной фильтр используется для синтаксического анализа, оптимизации и ресирелиализации (фух слово то какое) содержимого HTML, созданного в сервере Apache.
# для передачи вывода в формате HTML в обработчик mod_pagespeed вывода.
AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html
mod_pagespeed автоматически разрешает mod_deflate для сжатия.
Включение модуля и выключение
Выключение mod_pagespeed
Выключение mod_pagespeed выполняется через pagespeed.conf:
ModPagespeed off
Эти директивы могут использоваться в файлах .htaccess и Directory областях
Включение mod_pagespeed
Включение mod_pagespeed, выполняется через pagespeed.conf:
ModPagespeed on
Поддержка Apache 2.4.x
mod_pagespeed совместим с Apache 2.2.x и 2.4.x, версии 2.4.2 и новее. Пожалуйста, обратите внимание, что Apache 2.4.1 имеет ошибку, которая может вызвать проблемы со стабильностью в сочетании с mod_pagespeed, поэтому настоятельно не рекомендуется использовать с 2.4.1.
Apache 2.4 не совместимы с API 2.2, поддержка оказывается через отдельный модуль mod_pagespeed_ap24.so вместо используемого mod_pagespeed.so.
Конфигурация, в бинарных пакетах обычно загружает правильный модуль версии автоматически.
В CentOS более ранних версий возможно конфиг pagespeed.conf, нужно будет редактировать вручную.
Если вы компилировали mod_pagespeed с двумя серверами разных версий 2.2.x и 2.4.x вам нужно добавить LoadModule команду в вашу версию web сервера:
<IfModule !mod_version.c> LoadModule version_module /usr/lib/apache2/modules/mod_version.so </IfModule>
<IfVersion < 2.4> LoadModule pagespeed_module /usr/lib/apache2/modules/mod_pagespeed.so </IfVersion>
<IfVersion >= 2.4.2> LoadModule pagespeed_module /usr/lib/apache2/modules/mod_pagespeed_ap24.so </IfVersion>
Для автоматической настройки.
Vary Headers
Для того, чтобы максимально увеличить количество ресурсов mod_pagespeed можно переписать, по умолчанию модуль Vary: User-Agent и другой Vary заголовков в ресурсах файлов, Например, JavaScript и css файлов. Игнорируя Vary заголовки, mod_pagespeed может сократить размер кэша .mod_pagespeed всегда будет писать Vary: Accept-Encoding, независимо от данного параметра mod_pagespeed всегда будет писать Vary заголовки в HTML файлах, независимо от данного параметра .
Если на сайте есть ресурсы, которые законно различаются в User-Agent, или других атрибутов, нужно добавить:
ModPagespeedRespectVary on
в конфиг файл.
Обратите внимание, что включение этого параметра будет отключить оптимизации каких-либо ресурсов с заголовками Vary headers, помимо Vary: Accept-Encoding.
Имена элементов и атрибутов HTML в нижнем регистре
HTML не учитывается регистр, тогда как XML и XHTML наоборот. Для web производительности рекомендуется использовать нижний регистр ключевых слов, и mod_pagespeed может безопасно сделать это преобразование в HTML-документах.
В общем mod_pagespeed знает, является ли документ HTML или нет, благодаря Content-Type тегам заголовков HTTP и DOCTYPE.
Однако, многие веб-сайты имеют тип содержимого: text/html для ресурсов, которые являются на самом деле XML-документом.
Иногда можно добиться сжатия страниц:
ModPagespeedLowercaseHtmlNames on
Эти директивы могут использоваться в файлах .htaccess и <Directory>.
Риски
Эта команда рискованна только при наличии XML-файлов, которые подаются неправильно с типом содержимого Content-type: text/html.
атрибут нижнего регистра XML-элемента может повлиять на любое программное обеспечение которое производит чтение XML.
Сохранение HTML кэширования заголовков
По умолчанию, mod_pagespeed обслуживает все HTML с Cache-Control: no-cache, max-age = 0, потому что преобразование страницы не может быть кэшировано для длительных периодов времени.
Если вы хотите, заставить mod_pagespeed — оставить исходный html код кэширования заголовков можно добавить:
ModPagespeedModifyCachingHeaders off
Но компания Google крайне не рекомендует выключать этот модуль.
Указание значения для заголовка X-Mod-Pagespeed
По умолчанию mod_pagespeed добавляет заголовок X-Mod-Pagespeed со значением версии mod_pagespeed. Эта директива позволяет задать значение:
ModPagespeedXHeaderValue "Powered By mod_pagespeed"
Примечание: Нельзя подавлять инъекции этого заголовка. Потому, что он используется для предотвращения ненужного зацикливания и переписывает, когда mod_pagespeed извлекает ресурсы из происхождения, которые также используют mod_pagespeed..htaccess файлы и Directory
Htaccess файл может использоваться для управления большинства директив в mod_pagespeed.
По сути это одно и тоже.
Заметьте, однако, что соответствие файла подразумевает <Directory>область, или в каталоге файл .htaccess, относится только к HTML-файлу, а не любому из ресурсов, на которые имеются ссылки из файла HTML.
Чтобы ограничить ресурсы, каталог, необходимо использовать ModPagespeedAllow и ModPagespeedDisallow директивы, описанные выше, с использованием полного пути или подстановочные знаки в этих директивах.
Предупреждение: Ресурсы и HTML-файлы, ссылающиеся на них должны иметь те же параметры. Если они отличаются может появиться низкая производительность и непоследовательное применение параметров.
Директивы не используемые в .htaccess и <Directory>
- ModPagespeedFetchWithGzip
- ModPagespeedFetcherTimeoutMs
- ModPagespeedFileCacheCleanIntervalMs
- ModPagespeedFileCachePath
- ModPagespeedFileCacheSizeKb
- ModPagespeedImageMaxRewritesAtOnce
- ModPagespeedLRUCacheByteLimit
- ModPagespeedLRUCacheKbPerProcess
- ModPagespeedLoadFromFile
- ModPagespeedNumRewriteThreads
- ModPagespeedNumExpensiveRewriteThreads
- ModPagespeedXHeaderValue
Директивы которые можно использовать в .htaccess и <Directory>
- ModPagespeed
- ModPagespeedAllow
- ModPagespeedAvoidRenamingIntrospectiveJavascript
- ModPagespeedBeaconUrl
- ModPagespeedCombineAcrossPaths
- ModPagespeedCssFlattenMaxBytes
- ModPagespeedCssImageInlineMaxBytes
- ModPagespeedCssInlineMaxBytes
- ModPagespeedCssOutlineMinBytes
- ModPagespeedDisableFilters
- ModPagespeedDisallow
- ModPagespeedDomain
- ModPagespeedEnableFilters
- ModPagespeedImageInlineMaxBytes
- ModPagespeedImageLimitOptimizedPercent
- ModPagespeedImageLimitResizeAreaPercent
- ModPagespeedJpegRecompressionQuality
- ModPagespeedJsInlineMaxBytes
- ModPagespeedJsOutlineMinBytes
- ModPagespeedLowercaseHtmlNames
- ModPagespeedMapOriginDomain
- ModPagespeedMapRewriteDomain
- ModPagespeedMaxHtmlParseBytes
- ModPagespeedMaxInlinedPreviewImagesIndex
- ModPagespeedMinImageSizeLowResolutionBytes
- ModPagespeedModifyCachingHeaders
- ModPagespeedRetainComments
- ModPagespeedRewriteLevel
Преимущество .htaccess заключается в том, что он может использоваться в средах, где администратор сайта не имеют доступа к конфигурации Apache.
Однако существуют значительные каждого запроса накладные расходы от обработки .htaccess файлов.
Примечание: Вы должны избегать использования .htaccess файлов полностью, если у вас есть доступ к основной сервер конфигурационный файл httpd.
.htaccess файлы замедляют работу вашего сервера Apache. Все директивы, которые можно включить в файл .htaccess лучше установить в <Directory> блок, эффект тот же но быстрее
Еще один механизм можно использовать для настройки mod_pagespeed для нескольких различных сайтов является VirtualHost.
Использование mod_pagespeed и Virtual Hosts
По умолчанию mod_pagespeed устанавливается для всего сервера Apache, включая все VirtualHosts.
Если вы хотите настроить различные VirtualHosts по-разному, вам нужно будет использовать разные макеты для параметров конфигурации.
Пример настройки multi-server.
Самый основной подход это просто скопировать все настройки в каждый VirtualHost и выключить globaly. Например начиная с директив VirtualHost от Apache 2.0 пример:
# Ensure that Apache listens on port 80 Listen 80 # Listen for virtual host requests on all IP addresses NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /www/example1 ServerName www.example1.com # Other directives here </VirtualHost> <VirtualHost *:80> DocumentRoot /www/example2 ServerName www.example2.org # Other directives here </VirtualHost>
Если мы хотим иметь mod_pagespeed на www.example2.com, но не www.example1.com, мы могли бы изменить его:
# Ensure that Apache listens on port 80 Listen 80 # Listen for virtual host requests on all IP addresses NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /www/example1 ServerName www.example1.com # Other directives here </VirtualHost> <VirtualHost *:80> DocumentRoot /www/example2 ServerName www.example2.org # Other directives here # Turn on mod_pagespeed. To completely disable mod_pagespeed, you can set this # to "off". ModPagespeed on # The ModPagespeedFileCachePath directory must exist and be writable by the # apache user (as specified by the User directive). ModPagespeedFileCachePath "/var/cache/mod_pagespeed/" # Other ModPagespeed directives here ... # This page lets you view statistics about the mod_pagespeed module. <Location /mod_pagespeed_statistics> Order allow,deny # You may insert other "Allow from" lines to add hosts you want to allow to # look at generated statistics. Another possibility is to comment out the # "Order" and "Allow" options from the config file, to allow any client that # can reach your server to examine statistics. This might be appropriate in # an experimental setup or if the Apache server is protected by a reverse # proxy that will filter URLs in some fashion. Allow from all SetHandler mod_pagespeed_statistics </Location> </VirtualHost>Теперь мы ставим mod_pagsepeed «Off» в pagespeed.conf:
<IfModule pagespeed_module> # Turn on mod_pagespeed. To completely disable mod_pagespeed, you # can set this to "off". ModPagespeed off # Direct Apache to send all HTML output to the mod_pagespeed # output handler. AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html# …
В следующей статье вы узнаете как конфигурирывать фильтры mod_pagespeed.
Уведомить с этого сайта.
Коментариев (1)
Emmy
| #
Shiver me timbers, them’s some great inoonmatifr.
Добавить комментарий