У меня есть сервер Apache AWS Ubuntu 16, настроенный для использования HTTP2. Я следил за всеми учебниками, и все они говорят одно и то же:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get upgrade
sudo a2enmod http2
Мой файл виртуального хоста:
<VirtualHost *:443>
Protocols h2 h2c http/1.1
ServerName clearvision-dev
Затем sudo service apache2 restart
Однако когда я иду в https://tools.keycdn.com/http2-test для проверки я получаю сообщение об ошибке:
Результат тестирования HTTP / 2 www.clearvision-cm.com
Отрицательно! www.clearvision-cm.com не поддерживает HTTP / 2.0. ALPN не поддерживается.
Не могли бы вы объяснить, что происходит не так?
После невероятного количества исследований и отладки я наконец пришел к выводу, что http2 не поддерживается в Ubuntu 16 из-за того, что он «экспериментальный». Следующее взято из примечаний к отпуску:
Поддержка HTTP / 2 в Apache httpd
Поддержка HTTP / 2 считается экспериментальной функцией восходящего проекта Apache httpd, и поэтому мы не считаем ее подходящей или поддерживаемой в течение 5-летнего периода поддержки этого выпуска LTS. Поэтому поддержка HTTP / 2 недоступна в наших сборках Apache httpd.
Мы ожидаем выпустить стабильные обновления выпуска, включающие поддержку HTTP / 2 после того, как апстрим Apache httpd сочтет эту поддержку не экспериментальной, хотя это будет зависеть от нашей оценки риска регресса для существующих пользователей Xenial в то время.