Как установить модуль PageSpeed ​​в Ubuntu

Это краткое руководство показывает студентам и новым пользователям, как установить модуль Google PageSpeed ​​в Ubuntu 20.04 | 18.04 с поддержкой Nginx HTTP.

Модуль PageSpeed ​​- это открытый исходный код, Apache, поддерживаемый и созданный Google, чтобы помочь ускорить загрузку веб-страниц, переписав их для уменьшения задержки и уменьшения пропускной способности.

Модуль PageSpeed ​​был создан давно, и сегодня вы, вероятно, не увидите его установленным на слишком многих веб-страницах. Но концепция, лежащая в основе этого, по-прежнему актуальна.

Основная цель проекта PageSpeed ​​заключалась в автоматической оптимизации веб-сайтов, тем самым повышая удобство работы пользователей в Интернете на любом устройстве.

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

Я использую его на этом сайте, и он отлично подходит для моей аудитории.

Чтобы узнать больше о модуле PageSpeed, посетите его веб-сайт здесь.

Чтобы начать установку и настройку модуля PageSpeed ​​в Ubuntu с поддержкой Nginx, выполните следующие действия:

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

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

sudo apt update
sudo apt install libssl-dev libxslt-dev libgd-dev curl nano

После установки пакетов, указанных выше, продолжайте ниже.

Установить HTTP-сервер Nginx

Теперь, когда указанные выше пакеты установлены, выполните приведенные ниже команды, чтобы установить HTTP-сервер Nginx в Ubuntu. Установить Nginx в Ubuntu довольно просто. Стабильные пакеты Nginx доступны в репозиториях Ubuntu по умолчанию.

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

sudo apt install nginx

По некоторым причинам установленный Ubuntu Nginx не работал хорошо, когда я создавал модули PageSpeed. В этом случае обновитесь до версии из официального репозитория Nginx.

Выполните приведенные ниже команды, чтобы установить поддерживаемый пакет.

sudo apt install gnupg2 ca-certificates lsb-release

Затем создайте файл репозитория в Ubuntu.

echo "deb http://nginx.org/packages/ubuntu lsb_release -cs nginx" | sudo tee/etc/apt/sources.list.d/nginx.list

и добавьте ключ репозитория, выполнив следующие команды:

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

После этого выполните обновление, выполнив следующие команды:

sudo apt update
sudo apt install nginx

После установки Nginx вы также захотите установить установленную версию. Этот номер версии понадобится вам для создания правильных пакетов PageSpeed ​​для Nginx.

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

nginx -v

Это отобразит похожие строки, как показано ниже:

nginx version: nginx/1.20.0

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

Чтобы найти текущие установочные модули и аргументы Nginx, выполните следующие команды:

nginx -V

Это должно отобразить аналогичную строку, как показано ниже:

--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.20.0/debian/debuild-base/nginx-1.20.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

Скопируйте всю строку выше и сохраните ее в удобном для вас месте. Мы будем использовать строку выше при компиляции модуля PageSpeed ​​в Nginx.

Установить модуль PageSpeed

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

bash <(curl -f -L -sS https://ngxpagespeed.com/install) --nginx-version 1.20.0

Замените номер версии Nginx на соответствующий номер, установленный в настоящее время в вашей системе. Когда вы запускаете команду из домашнего каталога, она загружает пакеты PageSpeed ​​в вашу домашнюю папку.

Для этого руководства пакеты были загружены в мою папку / home / richard с именем incubator-pagespeed-ngx-latest-stable.

/home/richard/incubator-pagespeed-ngx-latest-stable

Вам понадобится указанный выше путь при сборке Nginx для добавления модуля PageSpeed.

Во время сборки вам будет предложено настроить дополнительные аргументы для Nginx. Помните папку PageSpeed, созданную в вашем домашнем каталоге?

About to build nginx.  Do you have any additional ./configure
arguments you would like to set?  For example, if you would like
to build nginx with https support give --with-http_ssl_module
If you don't have any, just press enter.
>

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

--add-dynamic-module=/home/richard/incubator-pagespeed-ngx-latest-stable

Теперь, когда будет предложено во время сборки, объедините как путь, указанный выше, так и исходный модуль Nginx и вывод аргументов, как показано выше. Вся строка должна выглядеть так:

--add-dynamic-module=/home/richard/incubator-pagespeed-ngx-latest-stable --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.20.0/debian/debuild-base/nginx-1.20.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

Когда появится запрос снова, выберите Y для Да.

You have set --with-debug for building nginx, but precompiled Debug binaries for
PSOL, which ngx_pagespeed depends on, aren't available.  If you're trying to
debug PSOL you need to build it from source.  If you just want to run nginx with
debug-level logging you can use the Release binaries.

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

Для завершения сборки.

После завершения сборки модуль PageSpeed ​​должен быть включен в Nginx. Вы можете протестировать, выполнив следующие команды:

nginx -V

Теперь он должен вывести строку с вашим домашним каталогом, указывающим на папку PageSpeed.

nginx version: nginx/1.20.0
built by gcc 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) 
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: --add-module=/home/richard/incubator-pagespeed-ngx-latest-stable --add-dynamic-module=/home/richard/incubator-pagespeed-ngx-latest-stable --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules

Затем включите модули PageSpeed ​​и создайте символическую ссылку для модулей Nginx.

sudo cp ~/nginx-1.20.0/objs/*.so /etc/nginx/modules
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules

Наконец, добавьте этот начальный блок PageSpeed ​​в серверный блок Nginx веб-сайта, который вы хотите улучшить. В каждый серверный блок, где включен PageSpeed, добавьте:

server {
...
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$" { }
...
}

Сохраните выход из файла и перезагрузите Nginx

sudo systemctl reload nginx

Проверить настройки PageSpeed.

curl -I -p http://example.com

Вы должны увидеть результат, аналогичный приведенному ниже.

HTTP/1.1 200 OK
Server: nginx/1.20.0
Date: Sat, 15 May 2021 14:58:16 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 20 Apr 2021 13:35:47 GMT
X-Page-Speed: 1.13.35.2-0 
Cache-Control: max-age=0, no-cache

Это должно сработать. Дополнительные настройки PageSpeed ​​доступны на его веб-сайте. Посетите сайт и найдите дополнительные параметры конфигурации.

Фильтры PageSpeed ​​(modpagespeed.com)

Заключение

В этом посте показано, как установить модуль PageSpeed ​​в Ubuntu с HTTP-сервером Nginx. Если вы обнаружите какую-либо ошибку выше, пожалуйста, используйте форму комментария ниже, чтобы сообщить.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.