Установка и настройка модуля PageSpeed

Обновлено и опубликовано Опубликовано:

Данный модуль предназначен для оптимизации ответа от веб-сервера. Его можно установить для Apache и NGINX. Мы рассмотрим оба варианта установки под операционные системы Ubuntu и CentOS. Подразумевается, что на нашем сервере уже установлены nginx и apache — мы выполним добавление модуля. В конце статьи можно найти ссылки на подробное описание настройки веб-серверов.

Apache

Модуль для apache называется mod_pagespeed и может распространяться как пакет.

Установка

Установка модуля немного различается для различных систем. Рассмотрим 2 варианта.

CentOS

Устанавливаем пакеты at и wget:

yum install at wget

Затем необходимо скачать установочный пакет:

wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm

* в данном примере мы загрузим пакет для 64-битной системы. Для 32-х нужно использовать ссылку https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.rpm.

После можно ставить сам модуль:

rpm -Uvh mod-pagespeed-*.rpm

Перезапускаем Apache:

systemctl restart httpd

Ubuntu

Загружаем установочный пакет:

wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb

* мы загрузим 64-х битный пакет. Если у нас используется система на 32-бит, то скачиваем по ссылке https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb.

Устанавливаем скачанный пакет командой:

dpkg -i mod-pagespeed-*.deb

После установки модуля, необходимо перезагрузить apache:

systemctl restart apache2

Настройка

После установки модуля и перезапуска сервиса веб-сервера наш сайт начнет использовать средства оптимизации. Но при желании, мы можем внести необходимые настройки.

а) если используем CentOS:

vi /etc/httpd/conf.d/pagespeed.conf

б) если используем Ubuntu:

vi /etc/apache2/mods-enabled/pagespeed.conf

Данный файл хорошо документирован комментариями. Приведем некоторые примеры для настроек.

1. Для отключения модуля находим:

ModPagespeed on

и меняем на:

ModPagespeed off

2. Для указания конкретного каталога хранения кэша меняем опцию для:

ModPagespeedFileCachePath         "/var/cache/mod_pagespeed/"

3. Путь хранения логов:

ModPagespeedLogDir       "/var/log/pagespeed"

Для применения настроек не забываем перезапустить apache:

systemctl restart {apache2,httpd}

* данная команда отработает как на CentOS, так и Ubuntu.

Доступ к веб-интерфесу

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

vi /etc/httpd/conf.d/pagespeed.conf

Находим настройку:

<Location /pagespeed_admin>
    Order allow,deny
    Allow from localhost
    Allow from 127.0.0.1
    SetHandler pagespeed_admin
</Location>

И добавляем в нее доступ (Allow from ...) — в итоге мы получим, примерно, следующее:

<Location /pagespeed_admin>
    Order allow,deny
    Allow from localhost
    Allow from 127.0.0.1
    Allow from 192.168.1.5
    Allow from 192.168.0.0/24
    SetHandler pagespeed_admin
</Location>

* в данном примере мы добавили разрешение использовать веб-интерфейс для узла 192.168.1.5 и всей подсети 192.168.0.0/24.

Перезапускаем сервис:

systemctl restart {apache2,httpd}

Открываем веб-интерфейс по адресу http://<IP-адрес сервера>/pagespeed_admin — мы должны увидеть страницу Pagespeed Admin.

NGINX

Для NGINX модуль называется ngx_pagespeed. Для его установки нам нужно будет пересобрать веб-сервер nginx.

Если наш сервер является боевым, то стоит сначала выполнить данные настройки в тестовой среде. После пересборки nginx, сайты могут перестать работать корректно.

Подготовка к сборке

Нам необходимо установить пакеты, необходимые для сборки. Устанавливаем их.

а) для CentOS

yum install gcc-c++ pcre-devel zlib-devel make unzip libuuid-devel libaio-devel libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed

б) для Ubuntu

apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev libssl-dev openssl libxml2-dev libxslt1-dev libgd-dev libgeoip-dev

После установки пакетов, необходимо загрузить исходники. Для начала перейдем в каталог:

cd /usr/local/src

* в него мы загрузим все исходники.

После переходим на страницу загрузки nginx и копируем ссылку на последнюю стабильную версию веб-сервера:

Копируем ссылку на исходник NGINX

* при необходимости установить другую версию nginx, копируем ссылку на нее. Если в вашей ситуации используется действующий веб-сервер, для поддержки максимальной совместимости, лучше загружать ту же версию, которая установлена на сервере.

Теперь загружаем пакет по скопированной ссылке:

wget https://nginx.org/download/nginx-1.18.0.tar.gz

* если система вернут ошибку, установим wget командами yum install wget (CentOS) или apt-get install wget (Ubuntu).

Распаковываем его:

tar zxvf nginx-*.tar.gz

Переходим на страницу с релизами модуля и копируем ссылку на последний стабильный:

Копируем ссылку на исходник модуля pagespeed для nginx

По скопированной ссылке скачиваем на сервер исходник:

wget https://github.com/apache/incubator-pagespeed-ngx/archive/v1.13.35.2-stable.tar.gz

Распаковываем данный исходник:

tar zxvf  v*-stable.tar.gz

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

cd incubator-pagespeed-ngx-*-stable/

Командой:

cat PSOL_BINARY_URL

... смотрим, по какой ссылке нужно загружать PSOL (PageSpeed Optimization Libraries). В моем случае было:

https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz

$BIT_SIZE_NAME нужно заменить разрядностью операционной системы, которую можно посмотреть командой:

uname -m

И так, в моем примере команда для загрузки PSOL получилась:

wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz

Распаковываем архив с PSOL:

tar zxvf 1.13.35.2-x64.tar.gz

* где 1.13.35.2 в названии файла — версия PSOL.

Сборка и установка NGINX

Переходим в каталог с исходником nginx:

cd /usr/local/src/nginx-*/

Смотрим опции сборки текущего nginx (напомню, инструкция предполагает, что он установлен на сервере):

nginx -V

Я в своем случае получил ответ:

...
configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --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_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads

Нам нужно скопировать данные аргументы и добавить к ним путь до исходника загруженного модуля:

--add-module=/usr/local/src/incubator-pagespeed-ngx-1.13.35.2-stable

* где 1.13.35.2 — версия модуля.

Итого, получаем и выполняем команду для конфигурации исходника:

./configure --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --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_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads --add-module=/usr/local/src/incubator-pagespeed-ngx-1.13.35.2-stable

На запрос использования доступных версий бинарных файлов отвечаем утвердительно:

Use the available Release binaries? [Y/n] Y

Если в процессе конфигурирования появятся ошибки, необходимо самостоятельно разобраться, какого модуля не хватает в системе и установить его.

После окончания конфигурирования можно собирать исходник:

make

Затем устанавливать nginx:

make install

Проверяем сборку nginx:

nginx -V

Мы должны увидеть среди configure arguments:

... add-module=/usr/local/src/incubator-pagespeed-ngx-1.13.35.2-stable

Настройка модуля

После пересборки nginx модуль pagespeed не будет включен. Для его активации открываем конфигурационный файл:

vi /etc/nginx/nginx.conf

В секцию http добавляем:

pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

* первая строка включает pagespeed, вторая — указывает на путь каталога с кэшем. Если нам нужно будет на время отключить модуль, оставим pagespeed off;

Перезапускаем nginx:

systemctl restart nginx

Поверка работы модуля

После того, как мы установили и применили модуль, необходимо убедиться, что он используется при работе сайта. Можно сделать это несколькими методами.

1. Браузер Google Chrome

Справедливости ради, важно заметить, что для этой цели подойдет не только данный браузер. Просто в нашей инструкции мы будет выполнять действия на его примере.

Нам необходимо посмотреть заголовки при ответе и убедиться, что среди них есть X-Mod-Pagespeed. Для этого запускаем браузер и кликаем F12, чтобы вызвать панель разработчика. Переходим на любой сайт на нашем сервере. В панели разработчика переходим в Network - кликаем по любому загруженному элементу в списке слева - Headers — если наш сервер настроен верно, мы увидим заголовок X-Mod-Pagespeed и версию модуля:

Находим заголовок в браузере

2. Командная строка Linux

Также мы можем выполнить проверку на сервере с помощью curl. Для этого вводим команду:

curl -I -p http://localhost

Мы должны получить что-то на подбие:

HTTP/1.1 200 OK
Server: nginx/1.18.0
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Date: Fri, 03 Jul 2020 09:45:20 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

3. Используем Google PageSpeed Insights

Переходим на страницу PageSpeed Insights и вводим адрес сайта — нажимаем Анализировать:

Переходим к анализу в PageSpeed Insights

Ждем результатов и на основе их принимаем решение для оптимальных настроек модуля pagespeed.

Читайте также

Настройка веб-сервера на CentOS

Настройка веб-сервера на Ubuntu

# Linux # Интернет # Серверы # NGINX # CentOS # Ubuntu
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет