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

Протокол передачи гипертекста версии 2 (HTTP / 2) является последней версией протокола HTTP, опубликованной в качестве стандарта IETF в RFC 7540 в 2015 году.

Основное внимание в протоколе уделяется производительности; в частности, задержка у конечного пользователя, использование ресурсов сети и сервера.

Одна из основных целей — разрешить использование одного подключения браузера к веб-сайту.

Протокол обратно совместим, поэтому методы HTTP, коды состояния и семантика такие же, как и в предыдущих версиях протокола.

Nginx имеет поддержку HTTP / 2 начиная с версии 1.9.5

. В этом руководстве я собираюсь предположить, что у вас уже есть работающая конфигурация TLS, и что вам нужна установленная версия Nginx в выбранном вами дистрибутиве Linux, и что вы знаете, как использовать Let’s Encrypt, или вы знаете, как выпускать самоподписанный сертификат.

Требования

Чтобы включить HTTP / 2 в Nginx, вам необходимо выполнить следующие требования:

  • Версия Nginx 1.9.5 или выше. Вы можете проверить свою версию Nginx, выполнив команду (nginx -v).
  • OpenSSL версии 1.0.2 или выше. Вы можете проверить свою версию OpenSSL, выполнив команду (OpenSSL version).
  • SSL / TLS сертификат от Let’s Encrypt или самоподписанный сертификат.
  • Протокол TLS 1.2 или выше включен. В противном случае вы не сможете использовать HTTP/2. Реализация HTTP/2 должна использовать TLS версии 1.2 или выше для HTTP / 2 поверх TLS.

Включить HTTP / 2 в Nginx

Чтобы включить HTTP / 2 в Nginx, мы должны добавить параметр http2 в директиву listen на нашем виртуальном хосте:

listen 443 ssl http2;

И перезагрузите вашу конфигурацию Nginx:

sudo systemctl reload nginx.service

Вот минимальная конфигурация виртуального сервера, которую можно использовать для включения HTTP / 2 на нескольких виртуальных хостах:

server {

  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com;
  root /path/to/public;

  ssl_certificate /path/to/certificate.crt;
  ssl_certificate_key /path/to/private.key;

  ssl_protocols TLSv1.2;

}

Чтобы проверить, поддерживает ли ваш сервер HTTP / 2, вы можете использовать инструменты разработки вашего браузера или файлы журнала Nginx.

Ниже приведен скриншот из браузера Google Chrome, который показывает HTTP / 2 в действии на домене https://example.com.

Вы также можете использовать встроенную переменную Nginx $ http2 для просмотра согласованного протокола.

Эта переменная будет записывать: «h2» для HTTP/2 через TLS, «h2c» для HTTP/2 через открытый текст TCP или пустую строку в журнале доступа Nginx, если это настроено.

И это все, что нужно для включения HTTP/2 на вашем сервере Nginx.

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40