Как настроить Nginx с модулем Google Pagespeed в Debian 11
Это руководство существует для этих версий ОС
- Debian 11 (Bullseye)
- Debian 7 (Wheezy)
На этой странице
- Предпосылки
- Установка зависимостей пакетов
- Проверка текущей версии Nginx
- Загрузить исходный код Nginx и Pagespeed
- Компиляция модуля Nginx Pagespeed
- Добавление модуля Pagespeed к текущей установке Nginx
- Добавление модуля Nginx Pagespeed на ваш виртуальный хост
- Проверка модуля Nginx Pagespeed
- Заключение
Модуль Google Pagespeed — это модуль с открытым исходным кодом для оптимизации ваших веб-сайтов под веб-сервер Nginx и Apache. Модуль Pagespeed — это модуль уровня сервера, устанавливаемый вместе с веб-сервером Nginx и Apache.
Модуль Pagespeed повышает производительность и скорость вашего сайта за счет оптимизации статических файлов на ваших сайтах. Модуль Pagespeed оптимизирует изображения на ваших веб-сайтах, минимизирует статические файлы, такие как HTML, CSS и JavaScript, и оптимизирует кэширование файлов.
В этом руководстве мы покажем вам, как создать модуль Nginx Pagespeed на последней версии Debian 11 Bullseye. Это руководство можно применить к текущей установке Nginx, поскольку вы только что собрали модуль Nginx.
Предпосылки
Прежде чем начать, убедитесь, что у вас есть следующие требования.
- Операционная система: Debian 11 Bullseye
- Привилегии root
Теперь давайте начнем.
Установка зависимостей пакетов
Во-первых, вы будете устанавливать зависимости пакетов для компиляции модуля Nginx.
1. Выполните приведенную ниже команду apt, чтобы обновить текущие репозитории в вашей системе.
sudo apt update
2. Затем установите основные зависимости пакетов для компиляции программ с помощью приведенной ниже команды apt.
sudo apt install curl dpkg-dev build-essential zlib1g-dev git libpcre3 git libpcre3-dev unzip uuid-dev -y
3. После этого установите билд-зависимости для компиляции модуля Nginx.
sudo apt build-dep nginx -y
Проверка текущей версии Nginx
Чтобы создать собственный модуль Nginx Pagespeed, убедитесь, что ваш текущий веб-сервер Nginx содержит ту же версию исходного кода Nginx, которую вы будете использовать для создания модуля Nginx.
1. Выполните следующую команду, чтобы проверить версию Nginx.
nginx -v
В этом примере текущая версия Nginx, установленная на нашем компьютере, — 1.18.0. Ниже приведен аналогичный вывод, который вы увидите.
nginx version: nginx/1.18.0
При желании, если в вашей системе нет пакета Nginx, установите его из официального репозитория Debian с помощью приведенной ниже команды apt.
sudo apt install nginx -y
2. Затем создайте новую временную переменную среды для вашей версии Nginx, используя приведенную ниже команду.
export NG_VER=1.18.0
Скачать исходный код Nginx и Pagespeed
На этом этапе вы загрузите исходный код Nginx и модуль Pagespeed на свой сервер. Этот исходный код Nginx будет иметь ту же версию, что и ваш текущий пакет Nginx.
1. Создайте новый каталог проекта /usr/src/nginx и войдите в него.
mkdir -p /usr/src/nginx; cd /usr/src/nginx
2. Теперь выполните следующую команду, чтобы загрузить исходный код Nginx и извлечь его.
wget http://nginx.org/download/nginx-$NG_VER.tar.gz
tar -xzvf nginx-$NG_VER.tar.gz
3. Далее клонируйте модуль Nginx Pagespeed в текущую директорию, и после завершения процесса вы увидите новую директорию incubator-pagespeed-ngx.
git clone https://github.com/apache/incubator-pagespeed-ngx.git
4. Перейдите в каталог incubator-pagespeed-ngx и переключитесь на стабильную ветку модуля Nginx Pagespeed.
cd incubator-pagespeed-ngx/
git checkout latest-stable
5. Проверьте файл PSOL_BINARY_URL, чтобы получить ссылку для загрузки библиотеки оптимизации страниц (PSOL). Эта библиотека необходима для модуля Nginx Pagespeed.
cat PSOL_BINARY_URL
Вы увидите аналогичный вывод, как показано ниже. Переменная $BIT_SIZE_NAME — это архитектура вашего сервера.
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
6. Теперь создайте новую временную переменную среды BIT_SIZE_NAME со значением архитектуры вашего сервера. В приведенном ниже примере используется архитектура x64 или 64-разрядного сервера.
export BIT_SIZE_NAME=x64
7. Теперь загрузите исходный код PSOL и распакуйте его.
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
tar -xzvf 1.13.35.2-$BIT_SIZE_NAME.tar.gz
Теперь вы готовы собрать модуль Nginx Pagespeed.
Компиляция модуля Nginx Pagespeed
На этом этапе вы будете компилировать модуль Nginx Pagespeed. В итоге вы получите модуль Nginx в формате .so, который можно применить к вашему текущему веб-серверу Nginx.
1. Измените рабочий каталог на каталог проекта Nginx.
cd /usr/src/nginx/nginx-$NG_VER
2. Выполните следующую команду, чтобы настроить компиляцию модуля Nginx. Эта команда также проверяет ваши системные требования, убедитесь, что у вас нет ошибок.
./configure --with-compat --add-dynamic-module=../incubator-pagespeed-ngx
Ниже приведен результат, который вы должны получить.
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
3. Затем скомпилируйте модуль Nginx Pagespeed с помощью следующей команды.
make modules
Эта команда займет некоторое время, в зависимости от ваших системных процессоров и памяти.
4. После завершения процесса компиляции ваш модуль Pagespeed станет доступен как objs/ngx_pagespeed.so. Проверьте модуль с помощью следующей команды.
ls objs/ngx_pagespeed.so
Вы должны получить модуль Nginx Pagespeed ngx_pagespeed.so, как показано ниже.
-rwxr-xr-x 1 root root 19M Dec 8 21:44 objs/ngx_pagespeed.so
Добавление модуля Pagespeed в текущую установку Nginx
На этом этапе вы внедрите модуль Nginx Pagespeed в текущую установку Nginx. Для этого скопируйте модуль Pagespeed ngx_pagespeed.so в каталог модуля Nginx и добавьте новую конфигурацию, чтобы включить его.
1. Скопируйте модуль ngx_pagespeed.so в каталог модулей Nginx по умолчанию /usr/share/nginx/modules.
cp /usr/src/nginx/nginx-$NG_VER/objs/ngx_pagespeed.so /usr/share/nginx/modules
2. Создайте новый файл конфигурации, чтобы включить модуль Pagespeedd.
nano /usr/share/nginx/modules-available/ngx-pagespeed.conf
Скопируйте и вставьте следующую конфигурацию.
load_module modules/ngx_pagespeed.so;
Сохраните конфигурацию и выйдите.
3. Активируйте модуль Pagespeed, создав конфигурацию символической ссылки ngx-pagespeed.conf в каталог /etc/nginx/modules-enabled/.
ln -s /usr/share/nginx/modules-available/ngx-pagespeed.conf /etc/nginx/modules-enabled/70-ngx-pagespeed.conf
4. Затем создайте новую конфигурацию pagespeed.conf в каталоге /etc/nginx.
nano /etc/nginx/pagespeed.conf
Скопируйте и вставьте следующую конфигурацию.
pagespeed on;
# Needs to exist and be writable by nginx. Use tmpfs for best performance.
pagespeed FileCachePath /var/ngx_pagespeed_cache;
# Ensure requests for pagespeed optimized resources go to the pagespeed handler
# and no extraneous headers get set.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
add_header "" "";
}
location ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
Сохраните конфигурацию и выйдите.
5. Затем создайте новый каталог для хранения кеша Nginx Pagespeed и убедитесь, что этот каталог доступен для записи пользователю Nginx www-data.
mkdir -p /var/ngx_pagespeed_cache
chown www-data:www-data /var/ngx_pagespeed_cache
Теперь модуль Nginx Pagespeed добавлен к вашей текущей установке Nginx. Перейдите к следующему шагу, чтобы включить его на ваших виртуальных хостах (серверных блоках).
Добавление модуля Nginx Pagespeed на ваш виртуальный хост
Чтобы включить модуль Pagespeed для вашего виртуального хоста, добавьте конфигурацию pagespeed.conf в файл конфигурации вашего виртуального хоста, используя параметр include.
1. В этом примере добавьте модуль Pagespeed для включения виртуального хоста по умолчанию. Отредактируйте конфигурацию /etc/nginx/sites-available/default с помощью редактора nano.
nano /etc/nginx/sites-available/default
Добавьте конфигурацию, включающую /etc/nginx/pagespeed.conf; внутри раздела server {...}, как показано ниже.
server {
.....
....
include /etc/nginx/pagespeed.conf;
}
сохранить конфигурацию и выйти.
2. Проверьте конфигурацию Nginx и убедитесь, что у вас нет ошибок. После этого перезапустите службу Nginx, чтобы применить новую конфигурацию.
nginx -t
sudo systemctl restart nginx
Проверка модуля Nginx Pagespeed
Чтобы проверить установку и реализацию модуля Nginx Pagespeed, вы можете использовать команду curl для получения заголовков HTTP вашего веб-сервера Nginx или использовать элемент Inspect в своем веб-браузере.
1. Выполните приведенную ниже команду curl, чтобы получить заголовки HTTP вашего веб-сервера Nginx.
curl -I https://domain.com/
Теперь вы должны получить вывод, как показано ниже. Дополнительный раздел заголовка X-Page-Speed означает, что модуль Nginx Pagespeed включен.
HTTP/1.1 200 OK
Server: nginx/1.18.0
Content-Type: text/html
Connection: keep-alive
Date: Wed, 01 Dec 2021 22:02:52 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache
2. Чтобы проверить в веб-браузере, зайдите на свое доменное имя и щелкните правой кнопкой мыши страницу, затем выберите меню «Проверка».
Перезагрузите свою веб-страницу еще раз, и вы увидите подробные заголовки HTTP, как показано ниже.
Заключение
Поздравляем! Вы узнали, как скомпилировать модуль Nginx Pagespeed и внедрить его в текущую установку Nginx. Вам просто нужно включить конфигурацию pagespeed.conf в конфигурацию вашего виртуального хоста.