You are here: Home » Без рубрики » Включение HTTP/2 в Apache на Arch Linux

Включение HTTP/2 в Apache на Arch Linux

HTTP/2 (изначально HTTP/2.0) — вторая крупная версия сетевого протокола HTTP, используемая для доступа к World Wide Web. HTTP/2 является первой новой версией HTTP с версии HTTP 1.1, которая была стандартизирована в 1999.

Отличия HTTP/2 от HTTP 1.1

Протокол HTTP/2 является бинарным. По сравнению с предыдущим стандартом изменены способы разбития данных на фрагменты и транспортирования их между сервером и клиентом.

В HTTP/2 сервер имеет право послать то содержимое, которое еще не было запрошено клиентом. Это позволит серверу сразу выслать дополнительные файлы, которые потребуются браузеру для отображения страниц, без необходимости анализа браузером основной страницы и запрашивания необходимых дополнений.

Также часть улучшений получена (в первом черновике HTTP/2, который представлял собой копию спецификации SPDY) за счет мультиплексирования запросов и ответов для преодоления проблемы «head-of-line blocking» протоколов HTTP 1; сжатия передаваемых заголовков и введения явной приоритизации запросов.

Небольшая книга на русском языке полностью посвящённая HTTP/2: https://bagder.gitbooks.io/http2-explained/content/ru/

Процесс включения поддержки HTTP/2 в Apache на Arch Linux достаточно прост. Предполагается, что веб-сервер у вас уже установлен. Установите необходимую зависимость:

pacman -S nghttp2

Далее откройте файл

vim /etc/httpd/conf/httpd.conf

найдите и раскомментируйте в нём строчку:

LoadModule http2_module modules/mod_http2.so

Если вы хотите включить HTTP/2 для всего сервера (для всех виртуальных хостов), то в этот же файл /etc/httpd/conf/httpd.conf добавьте строку:

Protocols h2 h2c http/1.1

h2 означает включение протокола HTTP/2 работающего только через HTTPS, h2c означает включение протокола HTTP/2 работающего только через HTTP, а http/1.1 означает поддержку HTTP 1.1.

Также можно сделать настройки для отдельных виртуальных хостов:

Protocols http/1.1
<VirtualHost ...>
    ServerName test.example.org
    Protocols h2 http/1.1
</VirtualHost>

Перезапустите сервер, чтобы изменения вступили в силу:

systemctl restart httpd.service
systemctl status httpd.service

Для проверки можно воспользоваться онлайн-сервисом https://tools.keycdn.com/http2-test

11

Или с помощью curl:

curl -vso /dev/null https://suip.biz

Если сервер поддерживает HTTP/2, то там должны быть примерно такие строки:

* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* TCP_NODELAY set
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *