Как включить HTTP2.0 в Nginx?
Apr 28, 2016 21:51 · 211 words · 1 minute read
Протокол 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
).