К включенному HTTP/2 на моих 16,04 серверах я следовал этому руководству, как рекомендуется Google, но по некоторым причинам мой сайт все еще обслуживается по HTTP/1.1. Я проверил и проверил это дважды, все корректно, перезапустил сервис (и сервер!) несколько раз, все напрасно.
http2
модификация включена в apache2.Protocols h2 h2c http/1.1
добавляется к моему конфигурационному файлу сайта (и просто тестируется в моем apache.conf),Я пропускаю что-то?
Править:
Просто работал curl -I -k --http2 https://framework.jacob.rocks/
и полученный следующее...
HTTP/1.1 200 OK
Date: Thu, 20 Jul 2017 17:12:52 GMT
Server: Apache/2.4.27 (Ubuntu)
Upgrade: h2,h2c
Connection: Upgrade
Link: <https://framework.jacob.rocks/wp-json/>; rel="https://api.w.org/"
Link: <https://framework.jacob.rocks/>; rel=shortlink
X-TEC-API-VERSION: v1
X-TEC-API-ROOT: https://framework.jacob.rocks/wp-json/tribe/events/v1/
X-TEC-API-ORIGIN: https://framework.jacob.rocks
Content-Type: text/html; charset=UTF-8
Понятый это, по-видимому, это была просто проблема с mpm_prefork
модуль, который не поддерживает HTTP/2, начинающий с Apache 2.4.27
. Я следовал этому руководству, и это теперь работает!
Apache2 не компилируется с поддержкой http2 по умолчанию на человечности 16.04.
Так Вы любой должен установить предварительно скомпилированную версию его, например, делая это:
sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get dist-upgrade
Или делая его собой со следующим методом:
Проверьте, что у Вас есть те строки в/etc/apt/sources.list:
deb-src http://archive.ubuntu.com/ubuntu/ xenial main universe restricted multiverse
deb-src http://security.ubuntu.com/ubuntu xenial-security main universe restricted multiverse
deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main universe restricted multiverse
В противном случае добавьте их с:
sudo echo 'deb-src http://archive.ubuntu.com/ubuntu/ xenial main universe restricted multiverse
deb-src http://security.ubuntu.com/ubuntu xenial-security main universe restricted multiverse
deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main universe restricted multiverse' >> /etc/apt/sources.list
Затем установите некоторые необходимые пакеты (libnghttp2-dev, необходимо для обеспечения поддержки http2):
sudo apt-get install curl devscripts build-essential libnghttp2-dev
sudo apt-get build-dep apache2
sudo apt-get source apache2
Затем компиляция:
cd apache-2.4.18
sudo su
./debian/rules binary
На данном этапе Вы могли установить сгенерированный deb, но они могли бы быть перезаписаны обновлением системы защиты позже, таким образом, мы просто скопируем модуль http2, который был сгенерирован и создает файл, чтобы смочь включить его:
cp debian/apache2-bin/usr/lib/apache2/modules/mod_http2.so /usr/lib/apache2/modules/
Затем создайте файл http2.load для загрузки модуля.
echo 'LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so
<IfModule http2_module>
LogLevel http2:info
</IfModule>' > /etc/apache2/mods-available/http2.load
Затем включите модуль
a2enmod http2
Затем апач перезапуска
service apache2 restart
Теперь необходимо быть хорошими для движения.
При включении SSL для сайта необходимо определить
Protocols h2 http/1.1
и в v-хосте и в ssl conf файл, еще это не будет работать.