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

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


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

  1. Требования
  2. Включить HTTP/2 в Nginx
  3. Ссылки

Протокол передачи гипертекста версии 2 (HTTP/2) — это последняя версия протокола HTTP, опубликованная в качестве стандарта IETF в RFC 7540 в 2015 году. Основное внимание в протоколе уделяется производительности; в частности, воспринимаемая конечным пользователем задержка, использование ресурсов сети и сервера. Одна из основных целей состоит в том, чтобы разрешить использование одного подключения браузеров к веб-сайту. Протокол обратно совместим, поэтому методы HTTP, коды состояния и семантика такие же, как и в предыдущих версиях протокола. Nginx поддерживает HTTP/2, начиная с версии 1.9.5. В этом руководстве я буду предполагать, что у вас уже есть работающая конфигурация TLS, и что у вас установлена требуемая версия Nginx в выбранном вами дистрибутиве Linux, и что вы знаете, как использовать Lets Encrypt, или знаете, как создать самостоятельную -подписанный сертификат.

Требования

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

  • Nginx версии 1.9.5 или выше. Вы можете проверить свою версию Nginx, выполнив команду (nginx -v).
  • OpenSSL версии 1.0.2 или выше. Вы можете проверить свою версию OpenSSL, выполнив команду (версия OpenSSL) или установив последнюю версию OpenSSL.
  • Сертификат SSL/TLS от Lets 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.

Ссылки

  • RFC 7540
  • HTTP/2