Основная функция использования модуля ngx_pagespeed — автоматическая оптимизации сайта с целью увеличения отзывчивости и пропускной способности при отдаче контента. Среди основных функций поддерживаемых модулем ngx_pagespeed: оптимизация страницы и всех связанных с ней CSS, JavaScript файлов, объединение нескольких файлов в один, уменьшение разрешения и сжатие изображений, оптимизация использования заголовков Expires, Cache-Control и Last-Modified.
Использование модуля ngx_pagespeed не требует изменения содержимого сайта, все преобразования выполняются на лету. Для снижения нагрузки на сервер PageSpeed использует встроенный механизм кэширования.
По умолчанию модуль ngx_pagespeed не включен в состав официальной сборки Nginx. Для его использования необходимо собрать Nginx с поддержкой модуля ngx_pagespeed из исходников.
Вначале необходимо установить все необходимы для сборки пакеты:
apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
Скачиваем скачиваем и распаковываем файлы модуля PageSpeed:
cd /usr/src wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.9.32.6-beta.zip unzip release-1.9.32.6-beta.zip cd ngx_pagespeed-release-1.9.32.6-beta wget https://dl.google.com/dl/page-speed/psol/1.9.32.6.tar.gz tar -xzvf 1.9.32.6.tar.gz
Добавим в файл /etc/apt/sources.list официальный репозиторий для mainline-ветки Nginx:
deb http://nginx.org/packages/mainline/debian/ codename nginx deb-src http://nginx.org/packages/mainline/debian/ codename nginx
Скачиваем и устанавливаем PGP-ключ, после чего не забудьте обновить индекс пакетов apt:
cd /tmp/ && wget http://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key apt-get update
Устанавливаем пакет dpkg-dev и все необходимые для сборки Nginx зависимости:
apt-get install dpkg-dev apt-get build-dep nginx
Скачиваем исходники Nginx:
cd /usr/src apt-get source nginx
Перед началом сборки и компиляции необходимо внести изменения в конфигурационный файл:
nano /tmp/nginx-1.9.3/debian/rules
Необходимо добавить путь к исходникам ngx_pagespeed в содержимое секций override_dh_auto_build и configure_debug:
override_dh_auto_build:
dh_auto_build
mv objs/nginx objs/nginx.debug
CFLAGS="" ./configure
--prefix=/etc/nginx
--sbin-path=/usr/sbin/nginx
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--pid-path=/var/run/nginx.pid
--lock-path=/var/run/nginx.lock
--http-client-body-temp-path=/var/cache/nginx/client_temp
--http-proxy-temp-path=/var/cache/nginx/proxy_temp
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
--http-scgi-temp-path=/var/cache/nginx/scgi_temp
--user=nginx
--group=nginx
--with-http_ssl_module
--with-threads
--with-file-aio
$(WITH_SPDY)
--with-cc-opt="$(CFLAGS)"
--with-ld-opt="$(LDFLAGS)"
--add-module=/usr/src/ngx_pagespeed-release-1.9.32.6-beta
dh_auto_build
Переходим к компиляции и сборку deb-пакета Nginx:
cd /usr/src/nginx-1.9.4 dpkg-buildpackage -rfakeroot -uc -b
Если в процессе не было ошибок, то в рабочем каталоге мы увидим собранные deb-пакеты Nginx. Перенесем их на рабочий сервер и выполним установку командой:
dpkg -i nginx_1.9.4-1~jessie_i386.deb
На этом процесс установки Nginx с поддержкой модуля ngx_pagespeed. Для проверки работы модуля PageSpeed, необходимо открыть конфигурационный файл Nginx:
nano /etc/nginx/nginx.conf
В секцию http необходимо добавить настройки ниже:
http {
pagespeed On;
# Указываем расположение кэша
pagespeed FileCachePath "/var/cache/ngx_pagespeed/";
}
Проверяем конфигурацию и применяем настройки Nginx:
nginx -t && service nginx reload
В следующей записи я подробнее опишу процесс настройки модуля PageSpeed в Nginx.