Это краткое руководство показывает студентам и новым пользователям, как установить модуль 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. Если вы обнаружите какую-либо ошибку выше, пожалуйста, используйте форму комментария ниже, чтобы сообщить.
Приветствую! Уже второй мануал использую по установке/настройке модуля пэйджспид. Все проходит без ошибок, но при проверке заголовков не показывает строку с версией пэйджспид. То есть вообще нет упоминания его.
HTTP/1.1 200 OK
Content-Encoding: gzip
Accept-Ranges: bytes
Age: 551936
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Sat, 20 Nov 2021 12:19:12 GMT
Etag: «3147526947»
Expires: Sat, 27 Nov 2021 12:19:12 GMT
Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
Server: ECS (oxr/8370)
X-Cache: HIT
Content-Length: 648
Что пошло не так?