Настройка HTTP/2 в nginx на Ubuntu/Debian
Всем привет! На дворе у нас 21 век, все кругом говорят о крутости новенького HTTP/2. Что же, не будем стоять в стороне и воспользуемся преимуществами новой версии протокола. В этой статье рассмотрим особенности включения HTTP/2 в Nginx.
Начнём с того что HTTP/2 поддерживается в nginx начиная c версии 1.9.5. HTTP/2 будет работать только поверх TLS версии 1.2 и выше. О подходящей для данного случая настройке HTTPS можно прочитать здесь.
Ключевые отличия от протокола HTTP1.1:
- данные передаются в бинарном виде вместо текстового;
- мультиплексирование запросов вместо очередей и блокировок;
- как следствие может использоваться одно соединение для распараллеливания;
- используется сжатие заголовков для уменьшения оверхеда;
- сервера могут отправлять дополнительное содержимое, необходимое для отображения страниц, в кэш клиентов ещё до запроса.
Для установки последней версии в Debian 8 необходимо добавить в список /etc/apt/sources.list репозиторий nginx:
deb http://nginx.org/packages/mainline/debian/ jessie nginx
deb-src http://nginx.org/packages/mainline/debian/ jessie nginx
После этого необходимо добавить публичный ключ для этого репозитория:
wget --quiet -O - http://nginx.org/packages/keys/nginx_signing.key | apt-key add -
Обновляем индекс пакетов:
apt-get update
После чего обновляем пакеты (если nginx уже установлен):
apt-get upgrade
Либо устанавливаем nginx с нуля:
apt-get install nginx
Проверить установленную версию можно командой:
nginx - v
На момент написания данной статьи последняя стабильная версия 1.9.14.
Теперь остаётся в конфиге nginx в директиве listen для протокола SSL добавить ключевое слово http2.
Должно получиться как-то так:
listen 93.170.104.204:443 ssl http2;
Перечитаем конфиги nginx:
service nginx reload
Готово!
Комментарии