Включенный http2, но все еще служащий по http1.1

К включенному 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
3
задан 20 July 2017 в 20:15

3 ответа

Понятый это, по-видимому, это была просто проблема с mpm_prefork модуль, который не поддерживает HTTP/2, начинающий с Apache 2.4.27. Я следовал этому руководству, и это теперь работает!

4
ответ дан 1 December 2019 в 15:34

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

Теперь необходимо быть хорошими для движения.

1
ответ дан 1 December 2019 в 15:34

При включении SSL для сайта необходимо определить

Protocols h2 http/1.1

и в v-хосте и в ssl conf файл, еще это не будет работать.

0
ответ дан 1 December 2019 в 15:34

Другие вопросы по тегам:

Похожие вопросы: