Переход на HTTP/2 (Ubuntu, Apache)

HTTP/2 принят и стандартизирован, и большинство современных браузеров (в том числе и мобильных) его уже поддерживают. Как же добавить поддержку протокола на свой сервер?


Немного предыстории

Отличия от HTTP 1.1

Основные отличия таковы:

  • HTTP/2 — бинарный;
  • Приоритезация запросов;
  • Мультиплексирование множества запросов в одном соединении TCP.

Этот протокол позволяет выигрывать в скорости передачи данных, а также снизить нагрузку на сервер.

SPDY

Читается как «спиди». Эта разработка компании Google позволяла использовать одно TCP соединение, и также использовала приоретизацию при загрузке ресурсов.

Однако его поддержка уже прекращена в пользу HTTP/2, поэтому особо тут нечего говорить.

Поддержка HTTP/2 в Apache

Обновление Apache

Для того, чтобы использовать HTTP/2, для начала нужно обновить Apache до версии

2.4.17

или выше.

sudo add-apt-repository ppa:ondrej/apache2

а потом сразу и:

sudo apt-get update

Проверить текущую версию можно командой

apache2 -v

.

Вот теперь, когда Apache выше 2.4.17 установлен, можно приступать к настройке самого Apache и виртуальных хостов на работу через HTTP/2.

Активация HTTP/2

Активируем поддержку нового протокола

sudo a2enmod http2

Настройка сайтов

Добавляем поддержку

http/2

в виртуальные хосты.

Естественно, виртуальные хосты лежат соответственно в

/etc/apache2/sites-enabled

и

/etc/apache2/sites-avalible

:

# Для сайта без https
<VirtualHost *:80>
  ServerName example.com
  Protocols h2c http/1.1
  # Остальная конфигурация…
</VirtualHost>

# Для сайта с https
<VirtualHost *:443>
  ServerName example.com
  Protocols h2 http/1.1
  # Остальная конфигурация…
</VirtualHost>

Ну и конечно же необходимо после всех этих махинаций перезагрузить Apache.

sudo service apache2 restart

Если сервер успешно перезагрузился, и сайты работают, значит все сделано было правильно.

Проверка

Есть несколько способов проверить, все ли правильно работает. Есть сервисы, есть плагины для браузера, но проще всего посмотреть какой протокол отображается в

access.log

.

P. S.:

Если Вам важны позиции в поиске Яндекса, то спешу Вас огорчить, его роботы не понимают новый протокол:

В настоящее время у основного поискового робота не реализована поддержка протокола HTTP/2, поэтому Ваш сайт может индексироваться некорректно.


8 марта 2016

Ну точнее говоря может перестать индексироваться вообще.


EnglishRussianUkrainian