ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как построить Nginx с модулем PageSpeed на Ubuntu

Как построить Nginx с модулем PageSpeed на Ubuntu

В этом руководстве мы покажем вам, как установить и настроить последнюю стабильную версию Nginx с модулем ngx_pagespeed на Ubuntu 14.04 VPS. С помощью модуля PageSpeed можно комбинировать и минимизировать CSS и JavaScript, оптимизировать и конвертировать изображения, удалить комментарии и пробельные из HTML, а также выполнять множество других оптимизаций.

Войдите в свой VPS через SSH

ssh user@vps_IP

 

Обновите систему и установите необходимые пакеты

Чтобы обновить VPS и установить все необходимые зависимости, выполните следующую команду:

[user]$ sudo apt-get update && sudo apt-get -y upgrade
[user]$ sudo apt-get install software-properties-common nano wget dpkg-dev \ 
			build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

 

Скачать Nginx и PageSpeed

Ubuntu 14.04 поставляется с Nginx версией 1.4, чтобы получить самую последнюю стабильную версию Nginx v1.8.1 нам понадобится добавить репозиторий Nginx PPA:

[user]$ sudo add-apt-repository -y ppa:nginx/stable

 

Редактирование файла источники PPA и раскомментируйте директиву deb-src.

[user]$ sudo nano /etc/apt/sources.list.d/nginx-stable-trusty.list

 

 # deb http://ppa.launchpad.net/nginx/stable/ubuntu trusty main
deb-src http://ppa.launchpad.net/nginx/stable/ubuntu trusty main

 

и обновите списки пакетов из репозиториев:

[user]$ sudo apt-get update

 

Установка зависимостей сборки Nginx:

[user]$ sudo apt-get build-dep nginx

 

Перейдите в папку /usr/local/src и скачайте пакет с исходными кодами Nginx:

[user]$ cd /usr/local/src
sudo apt-get source nginx

 

Скачать и распаковать последние ngx_pagespeed и PSOL модули с помощью следующих команд:

[user]$ cd nginx-1.8.1/debian/modules
[user]$ NPS_VERSION=1.10.33.6
[user]$ sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip -O release-${NPS_VERSION}-beta.zip
[user]$ sudo unzip release-${NPS_VERSION}-beta.zip
[user]$ cd ngx_pagespeed-release-${NPS_VERSION}-beta/
[user]$ sudo wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz
[user]$ sudo tar -xzvf ${NPS_VERSION}.tar.gz

 

Сборка Nginx с модулем PageSpeed

Перейдите в каталог, где вы загрузили пакеты с исходниками Nginx

[user]$ cd /usr/local/src/nginx-1.8.1

 

PPA ppa:nginx/stable ранее мы добавили несколько пакетов Nginx в наличии: nginx-common, nginx-full, nginx-light, nginx-extras и nginx-doc. Для этого руководства мы добавим модуль PageSpeed к пакету nginx-full, чтобы это сделать, нам нужно отредактировать файл debian/rules и добавить модуль full_configure_flags как показано ниже:

[user]$ cat debian/rules

 

full_configure_flags := \
                        $(common_configure_flags) \
                        --with-http_addition_module \
                        --with-http_dav_module \
                        --with-http_geoip_module \
                        --with-http_gunzip_module \
                        --with-http_gzip_static_module \
                        --with-http_image_filter_module \
                        --with-http_spdy_module \
                        --with-http_sub_module \
                        --with-http_xslt_module \
                        --with-mail \
                        --with-mail_ssl_module \
                        --add-module=$(MODULESDIR)/nginx-auth-pam \
                        --add-module=$(MODULESDIR)/nginx-dav-ext-module \
                        --add-module=$(MODULESDIR)/nginx-echo \
                        --add-module=$(MODULESDIR)/nginx-upstream-fair \
                        --add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module \
                        --add-module=$(MODULESDIR)/ngx_pagespeed-release-1.10.33.6-beta

 

Если вы хотите использовать Nginx-light вместо Nginx-full, вы должны добавить ту же строку в блоке light_configure_flags.

Теперь мы готовы построить Nginx с помощью следующей команды:

[user]$ sudo dpkg-buildpackage -b

 

Процесс сборки займет несколько минут.

После того , как процесс сборки будет завершен, вы найдете несколько .deb файлов в каталоге /usr/local/src/.

[user]$ ls -1 /usr/local/src/ | grep .deb$
nginx_1.8.1-1+trusty0_all.deb
nginx-common_1.8.1-1+trusty0_all.deb
nginx-doc_1.8.1-1+trusty0_all.deb
nginx-extras_1.8.1-1+trusty0_amd64.deb
nginx-extras-dbg_1.8.1-1+trusty0_amd64.deb
nginx-full_1.8.1-1+trusty0_amd64.deb
nginx-full-dbg_1.8.1-1+trusty0_amd64.deb
nginx-light_1.8.1-1+trusty0_amd64.deb
nginx-light-dbg_1.8.1-1+trusty0_amd64.deb

 

Мы добавили модуль PageSpeed к пакету “full”, поэтому мы установим этот пакет включая пакет Nginx-common:

[user]$ cd /usr/local/src
[user]$ sudo dpkg -i nginx-full_1.8.1-1+trusty0_amd64.deb nginx-common_1.8.1-1+trusty0_all.deb

 

После завершения установки, чтобы увидеть, какие модули установлены, введите nginx -V.

nginx version: nginx/1.8.1
built with OpenSSL 1.0.2g  1 Mar 2016
TLS SNI support enabled
configure arguments:
...
--add-module=/usr/local/src/nginx-1.8.1/debian/modules/ngx_pagespeed-release-1.10.33.6-beta
...

 

Создайте каталог для кэшированных файлов:

[user]$ sudo mkdir -p /var/ngx_pagespeed_cache
[user]$ sudo chown -R www-data: /var/ngx_pagespeed_cache

 

Создайте новую конфигурацию Nginx для модуля PageSpeed.

[user]$ sudo nano /etc/nginx/pagespeed.conf
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
  add_header "" "";
}
location ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }

# Минимизировать CSS
# pagespeed EnableFilters combine_css,rewrite_css;

# Минимизировать JS 
# pagespeed EnableFilters combine_javascript,rewrite_javascript;

# Удалять лишние комментарии и пробелы из HTML 
# pagespeed EnableFilters remove_comments,collapse_whitespace;

 

Вы можете раскомментировать фильтры, необходимые для вашего веб – сайта или добавить новые, для получения дополнительной информации о фильтрах PageSpeed, пожалуйста, посетите официальную документацию PageSpeed.

В каждом блоке сервера Nginx, для включения модуля PageSpeed, необходимо добавить:

include /etc/nginx/pagespeed.conf;

 

Пример:

server {

    listen      80;
    server_name your_site;
    root /path/to/site;
	
    include /etc/nginx/pagespeed.conf;
    # omitted code
}

 

Перезапустите службу Nginx.

[user]$ sudo nginx -t
[user]$ sudo service nginx restart

 

Как построить Nginx с модулем PageSpeed на Ubuntu

PS . Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях помощью кнопок на левой стороне поста или просто оставить комментарий ниже. Благодарю.

Exit mobile version