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

Как установить Nginx с Google PageSpeed на Ubuntu 20.04


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

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 15.04 (Vivid Vervet)

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

  1. Предпосылки
  2. Начало работы
  3. Установите веб-сервер Nginx
  4. Загрузить и скомпилировать ngx_pagespeed
  5. Настройте Nginx для использования модуля ngx_pagespeed
  6. Проверьте модуль ngx_pagespeed
  7. Заключение

Nginx — это бесплатный веб-сервер с открытым исходным кодом, на котором работают многие сайты в Интернете. Его можно использовать в качестве обратного прокси-сервера и балансировщика нагрузки. Он известен своей высокой производительностью и стабильностью.

ngx_pagespeed — это модуль Nginx с открытым исходным кодом, который можно использовать для оптимизации производительности вашего сайта. Он разработан Google и сокращает время загрузки страницы и ускоряет время отклика сайта.

В этом руководстве мы покажем вам, как скомпилировать ngx_pagespeed как динамический модуль с Nginx на сервере Ubuntu 20.04.

Предпосылки

  • Сервер под управлением Ubuntu 20.04.
  • Действительное доменное имя, указанное с IP-адресом вашего сервера. В этом уроке мы будем использовать домен example.com.
  • Пароль root настраивается на сервере.

Начиная

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

apt-get update -y

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

apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 git libpcre3-dev unzip -y

После установки всех пакетов можно переходить к следующему шагу.

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

Далее вам нужно будет установить веб-сервер Nginx в вашу систему. Вы можете установить его с помощью следующей команды:

apt-get install nginx -y

После завершения установки вы можете проверить установленную версию Nginx с помощью следующей команды:

nginx -v

Вы должны увидеть версию Nginx в следующем выводе:

nginx version: nginx/1.18.0 (Ubuntu)

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

Скачайте и скомпилируйте ngx_pagespeed

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

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

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

После завершения загрузки извлеките загруженный файл с помощью следующей команды:

tar -xvzf nginx-1.18.0.tar.gz

Затем загрузите исходный код ngx_pagespeed из репозитория Git с помощью следующей команды:

git clone https://github.com/apache/incubator-pagespeed-ngx.git

После завершения загрузки измените каталог на загруженный каталог и проверьте стабильную версию с помощью следующей команды:

cd incubator-pagespeed-ngx
git checkout latest-stable

Вы должны получить следующий результат:

Note: switching to 'latest-stable'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c 

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 11ba8ea54 Update PSOL_BINARY_URL

Из приведенного выше вывода откройте файл \PSOL_BINARY_URL\, чтобы увидеть URL-адрес загрузки PSOL:

cat PSOL_BINARY_URL

Вы должны получить следующий результат:

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

Теперь выполните следующую команду, чтобы загрузить PSOL, используя указанный выше URL-адрес:

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

Затем извлеките загруженный файл с помощью следующей команды:

tar -xvzf 1.13.35.2-x64.tar.gz

Затем измените каталог на исходный код Nginx и установите все необходимые зависимости с помощью следующей команды:

cd /root/nginx-1.18.0
apt-get build-dep nginx
apt-get install uuid-dev

Затем скомпилируйте модуль ngx_pagespeed с помощью следующей команды:

./configure --with-compat --add-dynamic-module=/root/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"

Затем выполните следующую команду для сборки модуля Pagespeed:

make modules

Затем скопируйте сгенерированный модуль в каталог модулей Nginx:

cp objs/ngx_pagespeed.so /usr/share/nginx/modules/

На этом этапе в вашей системе скомпилирован модуль ngx_pagespeed. Теперь вы можете перейти к следующему шагу.

Настройте Nginx для использования модуля ngx_pagespeed

Далее вам нужно будет настроить Nginx для использования модуля ngx_pagespeed. Сначала отредактируйте основной файл конфигурации Nginx и укажите путь к модулю ngx_pagespeed:

nano /etc/nginx/nginx.conf

Добавьте следующую строку в начало файла:

load_module modules/ngx_pagespeed.so;

Сохраните и закройте файл, когда закончите.

Затем создайте каталог для кэшей скорости страницы с помощью следующей команды:

mkdir -p /var/ngx_pagespeed_cache

Установите правильное право собственности с помощью следующей команды:

chown -R www-data:www-data /var/ngx_pagespeed_cache

Затем отредактируйте файл конфигурации виртуального хоста Nginx по умолчанию и добавьте конфигурацию скорости страницы:

nano /etc/nginx/sites-available/default

Заменил все строки на следующие строки:

server {
     listen 80;
     server_name example.com; 

     root /var/www/html;
     index index.nginx-debian.html index.html index.htm;

     access_log   /var/log/nginx/access.log;
     error_log    /var/log/nginx/error.log;

     location / {
         try_files $uri $uri/ =404;
     }

     pagespeed on;
     pagespeed FileCachePath "/var/ngx_pagespeed_cache/";
     pagespeed RewriteLevel OptimizeForBandwidth;

     location ~ ".pagespeed.([a-z].)?[a-z]{2}.[^.]{10}.[^.]+" {
         add_header "" "";
     }

     location ~ "^/pagespeed_static/" { }
     location ~ "^/ngx_pagespeed_beacon$" { }
pagespeed RewriteLevel CoreFilters;

 }

Сохраните и закройте файл, когда закончите. Затем проверьте Nginx на наличие синтаксической ошибки, используя следующую команду:

nginx -t

Вы должны получить следующий результат:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Наконец, перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

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

systemctl status nginx

Вы должны получить следующий результат:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-11-26 05:32:23 UTC; 20s ago
       Docs: man:nginx(8)
    Process: 363 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 385 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 386 (nginx)
      Tasks: 3 (limit: 2353)
     Memory: 14.4M
     CGroup: /system.slice/nginx.service
             ??386 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??387 nginx: worker process
             ??388 nginx: worker process

Nov 26 05:32:23 ubunt4 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 26 05:32:23 ubunt4 systemd[1]: Started A high performance web server and a reverse proxy server.

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

Проверьте модуль ngx_pagespeed

На данный момент Nginx настроен с поддержкой ngx_pagespeed. Теперь пришло время проверить его, установлен он или нет.

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

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

Если все в порядке, вы должны получить следующий вывод:

HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
Date: Wed, 25 Nov 2020 11:58:56 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

В приведенном выше выводе X-Page-Speed: 1.13.35.2-0 означает, что PageSpeed активен и оптимизирует ваш сайт.

Заключение

Поздравляем! вы успешно установили ngx_pagespeed с Nginx на сервер Ubuntu 20.04. Я надеюсь, что этот модуль повысит производительность вашего веб-сервера Nginx и ускорит работу веб-сайта. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.