Как включить HTTP2.0 в Nginx?

Apr 28, 2016 21:51 · 211 words · 1 minute read nginx http2

Протокол HTTP2.0 обладает массой преимуществ по сравнению с HTTP1.1 и даже SPDY, главное из которых — скорость. Давайте разберемся как включить HTTP2.0 в Nginx!

Первое необходимое условие для использования HTTP2.0 — использование безопасного HTTPS-соединения (наличие подписанного СЦ сертификата). Второе условие — наличие веб-сервера Nginx версии не ниже 1.9.15.

Благодаря LetsEncrypt с можно получить необходимый ssl-сертификат бесплатно (правда придется его обновлять каждые 90 дней) — подробнее о получении и установке сертификата я писал здесь.

Используется ОС Debian Jessie. Проверяем текущую версию Nginx:

nginx -v
nginx version: nginx/1.8.1

Нужно установить более новую версию веб-сервера. Для этого добавляем ключ, которым были подписаны пакеты и репозиторий Nginx:

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key

В файл /etc/apt/sources.list добавляем следующие строки:

deb http://nginx.org/packages/mainline/debian/ jessie nginx
deb-src http://nginx.org/packages/mainline/debian/ jessie nginx

Далее выполняем установку:

apt-get update && apt-get install nginx

Также Nginx можно собрать из исходников самостоятельно, включив ALPN (Application-Layer Protocol Negotiation) или даже добавить поддержку алгоритма сжатия Brotli.

Проверяем текущую версию веб-сервера:

nginx -v
nginx version: nginx/1.9.15

Открываем настройки сайта (например, файл /etc/nginx/conf.d/default.conf), блок server приводим к следующему виду:

server {
  listen 443 ssl http2;
  ...
}

Для применения изменений перезапустим веб-сервер Nginx:

service nginx restart

Теперь с помощью «Инструментов разработчика» в браузере Chrome можно проверить, какой протокол используется при обращении к вашему сайту (колонка Protocol должна содержать h2).

tweet Share