Сборка nginx с модулем ngx_pagespeed в .deb для Ubuntu 15.04
Кратко: пошаговый гайд по сборке .deb-пакета nginx с модулем Google ngx_pagespeed на Ubuntu 15.04. Устанавливаем зависимости, добавляем модуль в правила сборки, собираем пакет dpkg и проверяем nginx -V.
Nginx — это высокопроизводительный HTTP-сервер с открытым исходным кодом, обратный прокси и прокси для IMAP/POP3. Основные преимущества nginx: стабильность, небольшой расход ресурсов, простая конфигурация и богатый набор возможностей. Google PageSpeed (ngx_pagespeed) — модуль для веб‑сервера, который оптимизирует отдаваемые страницы и ресурсы, уменьшая время загрузки сайта.
В этом руководстве объясняется, как собрать .deb‑пакет nginx для Ubuntu 15.04 с включённым модулем ngx_pagespeed.
Важные определения в одну строку:
- ngx_pagespeed — модуль, который автоматически оптимизирует HTML, CSS, JS и изображения на стороне сервера.
- psol — бинарные компоненты PageSpeed, необходимые модулю для работы.
- dpkg-buildpackage — команда для сборки .deb‑пакета из исходников.
Что делает ngx_pagespeed
Основные возможности ngx_pagespeed:
- Оптимизация изображений: удаление метаданных, динамическое изменение размеров, рекомпрессия.
- Минификация, объединение, инлайнинг и вынос CSS/JavaScript.
- Встраивание мелких ресурсов напрямую в HTML.
- Отложенная загрузка изображений и JavaScript.
- Переписывание HTML и увеличение срока кеширования ресурсов.
Подробности: https://developers.google.com/speed/pagespeed/module/.
Требования
- Ubuntu Server 15.04 — 64‑бит.
- Права root (или sudo).
План действий:
- Установить зависимости.
- Скачать исходники nginx и страницы PageSpeed.
- Изменить правила сборки для включения модуля.
- Собрать .deb и установить.
- Протестировать сборку.
Установка зависимостей
Выполните команду для установки пакетов, необходимых для сборки:
sudo apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-devСборка nginx с ngx_pagespeed
Ниже приведён пошаговый процесс. В тексте сохранены исходные команды; выполняйте их в терминале под root или с sudo.
Шаг 1 — добавление репозитория nginx
Откройте файл списка репозиториев для nginx:
vim /etc/apt/sources.list.d/nginx.listДобавьте строки (в оригинале используется ‘trusty’ — убедитесь, что вы указали кодовое имя, соответствующее вашей версии Ubuntu):
deb http://nginx.org/packages/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/ubuntu/ trusty nginxОбновите индекс пакетов:
sudo apt-get updateВажно: при ошибке вида GPG error … NO_PUBKEY добавьте ключ репозитория:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEYNUMBER
sudo apt-get updateПримечание: замените KEYNUMBER на фактический идентификатор ключа, указанный в сообщении об ошибке.
Шаг 2 — загрузка исходников nginx 1.8
sudo su
cd ~
mkdir -p ~/new/nginx_source/
cd ~/new/nginx_source/
apt-get source nginx
apt-get build-dep nginxЭти команды загрузят исходники nginx и установят пакеты, необходимые для сборки исходников.
Шаг 3 — загрузка ngx_pagespeed
cd ~
mkdir -p ~/new/ngx_pagespeed/
cd ~/new/ngx_pagespeed/
ngx_version=1.9.32.3
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${ngx_version}-beta.zip
unzip release-${ngx_version}-beta.zip
cd ngx_pagespeed-release-1.9.32.3-beta/
wget https://dl.google.com/dl/page-speed/psol/${ngx_version}.tar.gz
tar -xzf 1.9.32.3.tar.gzПосле распаковки в каталоге ngx_pagespeed появятся необходимые файлы, включая psol.
Шаг 4 — настроить сборку nginx с Pagespeed
Откройте файл правил сборки (в исходнике nginx 1.8 путь может быть таким):
cd ~/new/nginx_source/nginx-1.8.0/debin/
vim rulesДобавьте строку модуля в раздел CFLAGS .configure примерно так (строка, как в исходном руководстве):
--add-module=../../ngx_pagespeed/ngx_pagespeed-release-1.9.32.3-beta \

Важно: проверьте относительные пути и версию модуля — они должны совпадать с тем, что у вас на диске.
Шаг 5 — сборка пакета и установка
Перейдите в каталог с исходниками и запустите сборку:
cd ~/new/nginx_source/nginx-1.8.0/
dpkg-buildpackage -bКоманда dpkg-buildpackage соберёт .deb файл в каталоге ~/new/ngix_source/ (обратите внимание на опечатки в путях в оригинале; используйте фактический путь, где были сохранены исходники).
Проверьте содержимое каталога сборки:
cd ~/new/ngix_source/
ls
Установите собранный пакет:
dpkg -i nginx_1.8.0-1~trusty_amd64.deb
Тестирование
Убедитесь, что модуль был включён в сборку:
nginx -VВы должны увидеть в выводе строку с –add-module=… или явно упоминание ngx_pagespeed.

Проверка и критерии приёмки
Критерии приёмки сборки:
- .deb‑пакет успешно собран и находится в каталоге сборки.
- Установка через dpkg прошла без ошибок.
- Команда nginx -V показывает, что ngx_pagespeed включён в конфигурацию сборки.
- Nginx запускается и обслуживает тестовую страницу без ошибок в логах.
Когда этот подход не подходит
- Вы используете управляемый хостинг или пакетный репозиторий, где запрещена ручная сборка — лучше выбрать готовые пакеты из репозитория.
- Для современных установок можно рассмотреть динамические модули (dynamic modules) — они позволяют подключать модули без пересборки всего nginx.
- Если ваша версия Ubuntu уже не поддерживается, подумайте об обновлении системы или использовании контейнеров с поддерживаемой базой.
Альтернативные подходы
- Использовать официальные или сторонние PPA/репозитории, где nginx уже собран с нужными модулями.
- Применять Docker‑образы с преднастроенным nginx + ngx_pagespeed.
- В некоторых сценариях оптимизацию можно выполнить на уровне CDN или сторонних сервисов (если необходимо минимизировать изменения сервера).
Мини‑методология (быстрый чеклист перед сборкой)
- Резервная копия конфигураций и списков пакетов.
- Убедиться в наличии свободного дискового пространства для сборки.
- Проверить соответствие версий nginx и ngx_pagespeed.
- Проверить корректность путей в файле rules и наличие psol.
- После сборки — запустить nginx и просмотреть логи ошибок.
Советы по совместимости и миграции
- В строках источников в примерах используется ‘trusty’ — при сборке для другой версии Ubuntu замените название кодовой версии (например, vivid, xenial и т.д.).
- Убедитесь, что версия ngx_pagespeed совместима с версией nginx, которую вы собираете.
- Для серверов в продакшене тестируйте сборку в изолированной среде (виртуальная машина или контейнер) перед деплоем.
Краткое резюме
Сборка nginx с ngx_pagespeed позволяет получить сервер, который отдаёт оптимизированные страницы прямо из сервера, без дополнительной инфраструктуры. Процесс включает установку зависимостей, загрузку исходников nginx и PageSpeed, добавление модуля в правила сборки и компиляцию .deb. Альтернативы включают использование готовых пакетов, Docker или CDN‑оптимизации.
Важно: модуль ngx_pagespeed значительно облегчает автоматическую оптимизацию ресурсов, но требует тестирования на совместимость с вашими приложениями и учёта особенностей CI/CD и поддержки пакетов.
Глоссарий (одна строка):
- ngx_pagespeed — серверный модуль для автоматической оптимизации веб‑ресурсов.
- psol — бинарные компоненты PageSpeed, необходимые модулю.
- dpkg-buildpackage — инструмент для упаковки Debian‑пакетов из исходников.
Краткое объявление для команды (пример):
Собран и протестирован .deb nginx с ngx_pagespeed для Ubuntu 15.04. Инструкции и чеклист по сборке в этом документе. Перед деплоем выполнить тесты в staging.
Конец.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента