Поиск по сайту:

Как настроить Nginx с модулем Google Pagespeed в Debian 11


Это руководство существует для этих версий ОС

  • Debian 11 (Bullseye)
  • Debian 7 (Wheezy)

На этой странице

  1. Предпосылки
  2. Установка зависимостей пакетов
  3. Проверка текущей версии Nginx
  4. Загрузить исходный код Nginx и Pagespeed
  5. Компиляция модуля Nginx Pagespeed
  6. Добавление модуля Pagespeed к текущей установке Nginx
  7. Добавление модуля Nginx Pagespeed на ваш виртуальный хост
  8. Проверка модуля Nginx Pagespeed
  9. Заключение

Модуль 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 в конфигурацию вашего виртуального хоста.