Установка nginx и google pagespeed на Ubuntu 14.04

В сети достаточно много мануалов по сборке NGINX c модулем PageSpeed от Google. Но все они предлагают постоянную муторную пересборку несчастного nginx чуть ли не каждый раз. Хорошо когда надо собрать все это счастье всего один раз, а когда несколько? Замучаешься ведь!

В результате некоторых поисков было найдено универсальное решение, которое позволяет собрать один deb-пакет, и распространить его на нужное количество серверов.

Итак, приступим. Скачиваем сначала все необходимые для сборки пакеты:

sudo apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev

 Добавляем репозиторий nginx:

vim /etc/apt/sources.list.d/nginx.list
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 […] bla bla, добавьте себе ключ:

sudo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEYNUMBER
sudo apt-get update

Теперь скачиваем nginx 1.8 c убунтовского репозитория:

sudo su
cd ~
mkdir -p ~/new/nginx_source/
cd ~/new/nginx_source/
apt-get source nginx
apt-get build-dep nginx

Скачиваем 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

А теперь сконфигурируем nginx как нам надо:

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 

Запись встречается в двух местах, не пропустите этот момент. В целом, выглядеть будет примерно так:

796363cb-636d-4d25-a7fe-58358ba7259e783fda2b-23da-49f6-805c-10e2313995a5

И, наконец, собираем наш пакет:

cd ~/new/nginx_source/nginx-1.8.0/
dpkg-buildpackage -b

Тут придется подождать, дело это не быстрое, но в конце вы будете вознаграждены за терпение полноценным deb-пакетом.

После сборки возвращаемся обратно в папку nginx_source

cd ~/new/ngix_source/
ls

И видим наш свежесобранный пакет:

b08a90ec-65cd-4285-a5c1-f31376357e16

После этого остается его только установить:

dpkg -i nginx_1.8.0-1~trusty_amd64.deb

После установки по nginx -V можно увидеть что наш PageSpeed успешно установлен:

5a874090-7bb8-445f-8928-e7e8af3bde11

Единственное, о чем стоит помнить при сборке nginx, что в отличие от apache модули к нему не подгружаются динамически, и если вы забыли что-то добавить на момент сборки, то придется начинать все заново. Зато все усилия могут быть вознаграждены наличием собственного универсального deb-пакета, который можно ставить на неограниченное количество систем.