В данной статье будет рассмотрены основные правила настройки модуля pagespeed для nginx. Так как для того, чтобы автоматически установить зависимости и собрать последнюю версию nginx с последней стабильной версией ngx_pagespeed, можно использовать следующую команду, как написано в официальной документации.
bash <(curl -f -L -sS https://ngxpagespeed.com/install) --nginx-version latest
Для активации модуля достаточно добавить директивы в блок server:
pagespeed on; # включаем модуль
pagespeed FileCachePath "/var/cache/ngx_pagespeed/"; #указываем папку где будем хранить кешированые данные
# правила обработки адресов
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
add_header "" "";
}
location ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
После этого в ответе сервера должен появиться заголовок X-Page-Speed, с версией модуля.
Модуль имеет три уровня настройки:
- CoreFilters - максимальный набор фильтров, является уровнем по умолчанию и активируется при запуске PageSpeed без дополнительных настроек.
- OptimizeForBandwidth - минимальный набор фильтров. В основном оптимизирует и сжимает код.
- PassThrough - полностью отключает все фильтры.
Для включения одного из уровней используется директива RewriteLevel:
pagespeed RewriteLevel CoreFilters;
Директива DisableFilters отключает фильтры, а EnableFilters включает.
pagespeed DisableFilters rewrite_images,combine_css;
pagespeed EnableFilters rewrite_css,rewrite_javascript;
Обо всех фильтрах вы можете прочитать в официальной документации.
Не забудет еще три директивы которые отвечают за кеш:
- pagespeed FileCacheSizeKb - задает максимальный размер кэша в килобайтах.
- pagespeed FileCacheCleanIntervalMs - задает интервал очистки кэша в миллисекундах.
- pagespeed FileCacheInodeLimit - задает лимит индексных дескрипторов (inode) по достижению которого кэш будет очищен.
Примечание
Для того чтобы модуль начал оптимизировать картинки, js и css файлы следует проверить заголовок Cache-Control у данных файлов, он должен быть установлен в public.
Если там установлено другое значение вы всегда можете его изменить используя следующий код:
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|woff|ttf|eof)$ {
add_header Cache-Control "public";
access_log off;
expires max;
}
З.Ы. А еще мы пишем много полезной информации в блоге Стократ. Добро пожаловать.