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

Как включить HTTP/2.0 в Nginx


HTTP/2 — новейший стандарт протокола HTTP, преемник HTTP/1.1. Он становится все более популярным благодаря преимуществам, которые он приносит веб-разработчикам и пользователям в целом. Он обеспечивает оптимизированный транспорт для семантики HTTP, поддерживая все основные функции HTTP/1.1, но стремится быть более эффективным во многих отношениях.

В дополнение к HTTP/2 имеется множество функций, которые дают вам больше возможностей для оптимизации веб-сайта/приложения. Он предлагает истинное мультиплексирование и параллелизм, лучшее сжатие заголовков (двоичное кодирование), лучшую приоритизацию, лучшие механизмы управления потоком данных и новый режим взаимодействия под названием «server push», который позволяет серверу отправлять ответы клиенту. . Не говоря уже о том, что HTTP/2 основан на экспериментальном протоколе Google SPDY.

Таким образом, основная задача HTTP/2 – сократить общее время загрузки веб-страницы и тем самым повысить производительность. В нем также основное внимание уделяется использованию ресурсов сети и сервера, а также безопасности, поскольку при использовании HTTP/2 шифрование SSL/TLS является обязательным.

В этой статье вы узнаете, как включить Nginx с поддержкой HTTP/2 на серверах Linux.

Предпосылки:

  • Рабочая установка NGINX версии 1.9.5 или выше, созданная с помощью модуля ngx_http_v2_module.
  • Убедитесь, что ваш сайт использует сертификат SSL/TLS. Если у вас его нет, вы можете получить его от Let’s Encrypt или использовать самозаверяющий сертификат.

Вы можете установить NGINX или развернуть его с помощью стека LEMP, как описано в следующих руководствах:

  • Как установить Nginx на CentOS 8
  • Как установить сервер LEMP на CentOS 8
  • Как установить NGINX, MySQL/MariaDB и PHP на RHEL 8
  • Как установить стек LEMP с помощью PhpMyAdmin в Ubuntu 20.04
  • Установите Nginx с серверными блоками (виртуальными хостами) в Debian 10
  • Как использовать Nginx в качестве балансировщика нагрузки HTTP в Linux

Как включить HTTP/2.0 в NGINX

Если у вас установлен NGINX, убедитесь, что он был собран с помощью модуля ngx_http_v2_module, выполнив следующую команду.

strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module

Если у вас есть веб-сайт/приложение, обслуживаемое NGINX с настроенным HTTPS, откройте файл блока виртуального сервера вашего веб-сайта (или виртуального хоста) для редактирование.

vi /etc/nginx/conf.d/example.com.conf                    [On CentOS/RHEL]
sudo nano /etc/nginx/sites-available/example.com.conf    [On Ubuntu/Debian]

Вы можете включить поддержку HTTP/2, просто добавив параметр http2 ко всем директивам listen, как показано на следующем снимке экрана.

listen 443 ssl http2;

Пример конфигурации блока сервера выглядит следующим образом.


server {
        server_name example.com www.example.com;
        access_log  /var/log/nginx/example.com_access.log;
        error_log  /var/log/nginx/example.com_error.log;

        listen [::]:443 ssl ipv6only=on http2; # managed by Certbot
        listen 443 ssl http2; # managed by Certbot

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot    
}

Сохраните изменения в файле и закройте его.

Затем проверьте синтаксис конфигурации NGINX, если он в порядке, перезапустите службу Nginx.

nginx -t
systemctl restart nginx

Затем откройте веб-браузер и проверьте, обслуживается ли ваш сайт через HTTP/2.

http://www.example.com

Чтобы получить доступ к заголовкам HTTP, щелкните правой кнопкой мыши отображаемую веб-страницу, выберите Проверить в списке параметров, чтобы открыть инструменты разработчика, затем щелкните вкладку Сеть и перезагрузите компьютер. страница.

В разделе Протоколы выберите тот, который используется на вашем сайте (если вы не видите заголовок «Протоколы», щелкните правой кнопкой мыши любой из заголовков, например Имя, а затем отметьте <Имя).Протокол из списка, чтобы отобразить его в виде заголовка).

Если ваш сайт работает на HTTP/1.1, в разделе Протокол вы увидите http/1.1, как показано на следующем снимке экрана.

Если он работает на HTTP/2, в разделе Протокол вы увидите h2, как показано на следующем снимке экрана. Возможно, вы захотите отключить кеш браузера, чтобы просматривать последний контент, передаваемый непосредственно с веб-сервера.

Вот и все! Дополнительную информацию см. в документации модуля ngx_http_v2_module. Не стесняйтесь задавать вопросы через форму обратной связи ниже.