Сборка Nginx с модулем Google PageSpeed на Ubuntu Server 16.04.

pagespeed ngx_pagespeed nginx ubuntu

Модуль ngx_pagespeed уменьшает время загрузки страниц и ускоряет общую работу сайта, автоматически применяя различные фильтры для улучшения производительности. Все действия выполняются на лету не изменяя исходных файлов сайта и его содержимого. Для снижения нагрузки в процессе работы модуля используется собственный механизм кэширования.

В число основных возможностей модуля входят:

  • Оптимизация изображений, компрессия, удаление метаданных, динамическое изменение размера изображений.
  • Минимизация CSS и JavaScript кода, объединение нескольких файлов в один.
  • Оптимизация HTML кода страниц сайта.
  • Продление срока кэширования файлов.
  • Отложенные загрузка и отображение JS-скриптов.

С полным списком возможностей можно ознакомиться прочитав официальную документацию по модулю.

Page­Speed собирается только из исходников и не входит в состав сборки сервера устанавливаемой из системных репозиториев Ubun­tu.

В системе должны присутствовать следующие пакеты.

Переходим в рабочий каталог /usr/local/src, сюда будем скачивать все исходники.

Скачиваем Nginx.

Распаковываем архив с исходниками.

Скачиваем последнюю версию Page­Speed. Текущую версию можно посмотреть здесь.

Распаковываем архив с исходниками.

Удаляем более не нужные архивы.

Переходим в распакованный каталог с исходниками Page­speed.

Находясь в каталоге с исходниками, cкачиваем Page­Speed Opti­miza­tion Libraries (PSOL) - набор библиотек для оптимизации.

Ссылка на скачивание PSOL, прописана в файле PSOL_BINARY_URL, данный файл находится в этом же каталоге. Просмотреть его содержимое можно командой cat.

Где $BIT_SIZE_NAME означает разрядность системы. Поскольку система 64-х битная, то добавляем к ссылке - x64.

Распаковываем библиотеки.
Удаляем архив.

Необходимо пропатчить файл ngx_pagespeed.cc, находящийся в каталоге /src. Если этого не сделать, то при компиляции будет следующая ошибка.

Находясь в каталоге с исходниками Page­Speed, создадим diff-файл, в котором будут указаны необходимые изменения для патча.

Содержимое файла 1453.diff.
Проверим патч, чтобы не было конфликтов.
Патчим файл ngx_pagespeed.cc, измененный файл будет называться updated.ngx_pagespeed.cc.

Заменяем старый файл на новый. Просто копируем новый файл в каталог /src попутно переименовав его в ngx_pagespeed.cc.

Теперь можно собирать сервер. Переходим в каталог с исходниками Nginx.

Чтобы собрать Nginx c page­speed модулем нужно добавить следующую опцию к своей конфигурации сервера.

Например так, ничего лишнего, все ненужное убрано/отключено.

Если при конфигурации сервера у вас возникли какие либо ошибки, то это означает, что вы что-то забыли установить из списка необходимых пакетов в начале статьи. Найдите свою ошибку в списке и установите нужные пакеты, после чего выполните команду "./configure…" заново.

Если по завершению не было никаких ошибок, то компилируем и устанавливаем Nginx.

Проверяем что получилось.
Создадим пользователя nginx.
Создадим каталог /var/cache/nginx.
Создадим символическую ссылку на исполняемый файл nginx в каталоге /bin.
Создаем службу nginx.service.
Добавляем службу nginx.service в автозагрузку и запускаем.
Проверяем как работает.
Настройка модуля Page­speed будет описана в следующей статье.