В этом руководстве мы покажем вам, как установить и настроить последнюю стабильную версию Nginx с модулем ngx_pagespeed на Ubuntu 14.04 VPS. С помощью модуля PageSpeed можно комбинировать и минимизировать CSS и JavaScript, оптимизировать и конвертировать изображения, удалить комментарии и пробельные из HTML, а также выполнять множество других оптимизаций.
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
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
[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
PS . Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях помощью кнопок на левой стороне поста или просто оставить комментарий ниже. Благодарю.