Назад | Перейти на главную страницу

Добавление модуля PageSpeed ​​в установленный nginx

Мне нравится добавлять модуль Google PageSpeed ​​на свой веб-сервер nginx в Ubuntu.

Эта ссылка дает простой обзор https://developers.google.com/speed/pagespeed/module/build_ngx_pagespeed_from_source?hl=de но это касается только случая, когда вы устанавливаете nginx с нуля.

У меня уже установлен nginx, и когда я набираю следующую командную строку в папке / var / lib / nginx, я получаю сообщение об ошибке «Нет такого файла»:

./configure --add-module=$HOME/ngx_pagespeed-release-1.7.30.4-beta

Лучше всего в этом вопросе создать Nginx с нуля.

Сохраните файлы конфигурации nginx перед этим в безопасное место, а затем сделайте это, если вы используете Debian:

sudo dpkg -r nginx

Если вы используете Debian: sudo apt-get install build-essential zlib1g-dev libpcre3-dev

Просто убедитесь, что вы удалили Nginx и получили необходимые библиотеки для сборки Nginx из исходников, если не в Debian.

Библиотеки и инструменты:

gcc-c++ pcre zlib make wget

Следующая часть не зависит от системы.

Получите последнюю версию Nginx:

cd /usr/src/
sudo wget http://nginx.org/download/nginx-1.7.6.tar.gz
sudo  tar xvfvz nginx-1.7.6.tar.gz
cd /usr/src/nginx-1.7.6

Получите последний источник скорости страницы:

sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.9.32.1-beta.zip

Сначала распакуйте модуль:

sudo unzip v1.9.32.1-beta.zip

cd ngx_pagespeed-1.9.32.1-beta

Загрузите библиотеки PSOL в каталог модуля и распакуйте их туда:

sudo wget wget https://dl.google.com/dl/page-speed/psol/1.9.32.1.tar.gz
sudo  tar xvfvz 1.9.32.1.tar.gz

cd обратно в корневой каталог исходных текстов nginx и сконфигурируйте, сделайте и сделайте установку. Убедитесь, что вы изменили пользователя Nginx на этапе настройки на пользователя, который соответствует вашим потребностям (--user = nginx --group = nginx):

cd /usr/src/nginx-1.7.6

./configure --add-module=/usr/src/nginx-1.7.6/ngx_pagespeed-1.9.32.1-beta --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx

Когда этап настройки завершен:

sudo make

sudo make install

Это даст вам последнюю версию Nginx с последним модом pagepeed и библиотеками, готовыми к работе.

Похоже, это требует выполнения ряда команд, если вы не хочу создавать NGINX с нуля. Вот сценарий bash, который я использую для автоматическая установка PageSpeed ​​на уже работающий экземпляр NGINX:

#!/bin/bash
# https://www.majlovesreg.one/tag/code/
# https://www.majlovesreg.one/adding-pagespeed-to-a-running-nginx-instance

# For custom NGINX version, use:
# ngver=1.14.2
# For passing via the command line, use:
# ngver=$1
# For automated detection of installed NGINX, use:
ngver=$(nginx -v 2>&1 | grep -oP '(?<=/).*')

moddir=/usr/share/nginx/modules
builddir=$(mktemp -d)

# Build in tmp directory
cd ${builddir}

# Use script provided by pagespeed
nice -n 19 ionice -c 3 bash <(curl -f -L -sS https://ngxpagespeed.com/install) -n ${ngver} -m -b ${builddir} -a '--with-compat' -y || { echo '!! error with module creation, exiting...'; exit 1; }

# Replace ngx_pagespeed.so if exists, otherwise, copy it
[ -f ${moddir}/ngx_pagespeed.so ] && sudo mv ${moddir}/ngx_pagespeed.so ${moddir}/ngx_pagespeed.so.old
sudo chmod 644 /usr/local/nginx/modules/ngx_pagespeed.so || { echo '!! error with module path, exiting...'; exit 2; }
sudo cp /usr/local/nginx/modules/ngx_pagespeed.so ${moddir}/

# If new module works well, clean up build and install files
sudo nginx -t && { sudo rm -r /usr/local/nginx; rm -r ${builddir}/incubator-pagespeed-ngx-latest-stable; rm -r ${builddir}/nginx-${ngver}; } || { echo '!! nginx conf failed, exiting...'; exit 4; }

# Restart NGINX
systemctl is-active nginx && sudo systemctl restart nginx || sudo systemctl start nginx
echo
systemctl --no-pager status nginx
echo
echo 'Build and install of ngx_pagespeed sucessful!'
echo

Чтобы включить динамический модуль и установить другие параметры PageSpeed, см.: https://www.majlovesreg.one/adding-pagespeed-to-a-running-nginx-instance

Вы можете использовать собственный источник PPA для установки сборки nginx с Pagespeed в вашу систему.

смотреть на https://launchpad.net/~sandyd/+archive/nginx-current-pagespeed для кастомной сборки.