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

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

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

Готово!

КОММЕНТАРИИ

 fububy 2017-04-02 16:19:39
0

Добавил себе на сайте https://triptorg.ru/ http/2. Сервис "HTTP/2 Тест - онлайн сервис" показывает, что
сайт поддерживает http/2. Но вот firebug в firefox в заголовках пишет Версия: HTTP/1.1
В чем может быть проблема? Версия Nginx 1.11.6, в конфиге все указал: listen 443 ssl http2;

Ответить
  •  ivashkevich 2017-04-02 18:11:44
    0

    Приветствую, а что на счёт стандартных инструментов разработчика в FF? Что говорят они?

    Ответить
    •  fububy 2017-04-04 07:13:46
      +1

      Все говорили одно и то же. Но спасибо. Проблему решил. Оказалось, что нужно было пересобрать Nginx с OpenSSL v.1.0.2

      Ответить
Чтобы написать комментарий нужно войти на сайт.
Или получить доступ прямо сейчас:


Нажимая эту кнопку
Вы принимаете политику конфиденциальности