Чтобы включить HTTP / 2 на моем сервере 16.04, я следил за этим руководством, как рекомендовано Google, но по какой-то причине мой сайт по-прежнему обслуживается через HTTP / 1.1. Я проверил и дважды проверил, что все правильно, несколько раз перезапустил службу (и сервер!), Все безрезультатно.
http2 mod включен в apache2. Protocols h2 h2c http/1.1 добавлен в файл конфигурации моего сайта (и только что протестирован в моем apache.conf) Я перезапустил службу и серверЯ что-то упустил?
EDIT: [ ! d7]
Просто запустил 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. Я последовал этому руководству, и теперь он работает!
Поняв это, видимо, это была проблема с модулем mpm_prefork, который не поддерживает HTTP / 2, начиная с Apache 2.4.27. Я последовал этому руководству, и теперь он работает!
Поняв это, видимо, это была проблема с модулем mpm_prefork, который не поддерживает HTTP / 2, начиная с Apache 2.4.27. Я последовал этому руководству, и теперь он работает!
Apache2 не скомпилирован с поддержкой http2 по умолчанию на ubuntu 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
Если нет, добавьте их с помощью: [ ! d4]
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
At на этом этапе вы можете установить сгенерированный deb, но позже они могут быть перезаписаны обновлением безопасности, поэтому мы просто скопируем созданный модуль http2 и создадим файл, который сможет его включить:
[ f6]Затем создайте файл 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
Затем перезапустите apache
service apache2 restart
Теперь вам должно быть хорошо идти.
Apache2 не скомпилирован с поддержкой http2 по умолчанию на ubuntu 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
Если нет, добавьте их с помощью: [ ! d4] 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
At на этом этапе вы можете установить сгенерированный 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
Затем перезапустите apache
service apache2 restart
Теперь вам должно быть хорошо идти.
Apache2 не скомпилирован с поддержкой http2 по умолчанию на ubuntu 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
Если нет, добавьте их с помощью: [ ! d4] 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
At на этом этапе вы можете установить сгенерированный 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
Затем перезапустите apache
service apache2 restart
Теперь вам должно быть хорошо идти.