Установка модуля PageSpeed для Nginx на Debian 9
Как собрать Nginx с модулем ngx_pagespeed для автоматической оптимизации скорости сайта.
ngx_pagespeed — модуль Nginx, который автоматически оптимизирует веб-страницы: сжимает изображения, минифицирует CSS и JavaScript, управляет кэшированием и многое другое. Всё это без изменений в коде сайта.
Важно
Руководство предполагает сборку Nginx из исходных кодов. Перед началом убедитесь, что у вас есть резервная копия текущей конфигурации.
Установка зависимостей
Установите зависимости, необходимые для сборки Nginx:
sudo apt-get build-dep nginx
sudo apt-get update
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev
Создание рабочего каталога
mkdir ~/custom-nginx
cd ~/custom-nginx
Загрузка исходного кода Nginx
Проверьте текущую версию Nginx:
nginx -v
nginx version: nginx/1.18.0
Загрузите исходники той же версии с официального сайта:
sudo wget http://nginx.org/download/nginx-1.18.0.tar.gz
sudo tar zxvf nginx-1.18.0.tar.gz
Загрузка и подготовка ngx_pagespeed
Перейдите в каталог модулей Nginx:
cd nginx-1.18.0/src/http/modules/
Загрузите архив ngx_pagespeed из репозитория GitHub:
sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/master.zip
sudo unzip master.zip
sudo mv incubator-pagespeed-ngx-master ngx_pagespeed
cd ngx_pagespeed
Загрузите библиотеки PageSpeed Optimization Libraries (psol), необходимые для компиляции:
sudo wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz
sudo tar -xzvf 1.13.35.2-x64.tar.gz
Компиляция Nginx с модулем pagespeed
Вернитесь в каталог с исходниками Nginx:
cd ~/custom-nginx/nginx-1.18.0/
Посмотрите параметры конфигурации текущей установки Nginx — они понадобятся для пересборки:
nginx -V
Запустите конфигурацию с теми же параметрами, добавив в конец --add-module:
sudo ./configure \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--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-compat \
--with-file-aio \
--with-threads \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-mail \
--with-mail_ssl_module \
--with-stream \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' \
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' \
--add-module=./src/http/modules/ngx_pagespeed/
Используйте параметры из вывода
nginx -Vна вашем сервере — они могут отличаться от приведённых в примере.
Запустите компиляцию и установку:
sudo make
sudo make install
Настройка и включение ngx_pagespeed
Создайте каталог для кэша модуля:
sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R www-data:www-data /var/ngx_pagespeed_cache
Откройте главный конфигурационный файл Nginx:
sudo nano /etc/nginx/nginx.conf
Добавьте в блок http следующие строки:
##
# Pagespeed Settings
##
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
В каждый блок server добавьте:
# Маршрутизация запросов к ресурсам, оптимизированным pagespeed
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
add_header "" "";
}
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }
Перезапустите Nginx:
sudo service nginx restart
Проверка установки
Убедитесь, что модуль присутствует в конфигурации:
sudo /usr/sbin/nginx -V
В выводе должна присутствовать строка --add-module=./src/http/modules/ngx_pagespeed/.
Проверьте работу модуля через HTTP-заголовки:
curl -I -p ВАШ_IP_СЕРВЕРА
В ответе должен присутствовать заголовок X-Page-Speed с номером версии:
HTTP/1.1 200 OK
Server: nginx
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache
Наличие заголовка X-Page-Speed подтверждает, что модуль установлен и работает корректно.
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!