Найти тему
SСhaos

Основные настройки модуля PageSpeed для Nginx

В данной статье будет рассмотрены основные правила настройки модуля 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;
}

З.Ы. А еще мы пишем много полезной информации в блоге Стократ. Добро пожаловать.