Настройка HTTP/2 в nginx на Ubuntu/Debian

03.10.2016 в 18:54
16069
+135

Всем привет! На дворе у нас 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

Готово!

loader
03.10.2016 в 18:54
16069
+135
Комментарии
К этому посту больше нельзя оставлять новые комментарии
Логические задачи с собеседований