Descobri isso, aparentemente era apenas um problema com o módulo mpm_prefork
que não suporta HTTP / 2 a partir do Apache 2.4.27
. Eu segui este guia e agora funciona!
Para ativar o HTTP / 2 no meu servidor 16.04, segui este guia conforme recomendado pelo Google, mas, por algum motivo, site ainda está sendo servido por HTTP / 1.1. Eu verifiquei e verifiquei novamente se tudo está correto, reiniciei o serviço (e o servidor!) Várias vezes, tudo em vão.
http2
mod está ativado no apache2. Protocols h2 h2c http/1.1
é adicionado ao meu arquivo de configuração do site (e apenas testado no meu apache.conf) Estou sentindo falta de algo?
EDITAR:
Apenas corri curl -I -k --http2 https://framework.jacob.rocks/
e recebi o seguinte ...
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
Descobri isso, aparentemente era apenas um problema com o módulo mpm_prefork
que não suporta HTTP / 2 a partir do Apache 2.4.27
. Eu segui este guia e agora funciona!
O Apache2 não é compilado com suporte a http2 por padrão no Ubuntu 16.04.
Então você precisa instalar uma versão pré-compilada dele, por exemplo, fazendo isso:
sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get dist-upgrade
Ou fazendo isso sozinho com o seguinte método:
Verifique se você tem essas linhas em /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
Se não, adicione-os com:
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
Em seguida, instale alguns pacotes necessários (libnghttp2-dev é necessário para trazer suporte a http2):
sudo apt-get install curl devscripts build-essential libnghttp2-dev
sudo apt-get build-dep apache2
sudo apt-get source apache2
Em seguida, compile:
cd apache-2.4.18
sudo su
./debian/rules binary
Nesta fase, você poderia instalar o deb gerado, mas eles podem ser sobrescritos por uma atualização de segurança mais tarde, então vamos apenas copiar o módulo http2 que foi gerado e criar um arquivo para habilitá-lo:
cp debian/apache2-bin/usr/lib/apache2/modules/mod_http2.so /usr/lib/apache2/modules/
Em seguida, crie o arquivo http2.load para carregar o módulo.
echo 'LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so
<IfModule http2_module>
LogLevel http2:info
</IfModule>' > /etc/apache2/mods-available/http2.load
Em seguida, ative o módulo
a2enmod http2
Em seguida, reinicie o apache
service apache2 restart
Agora você deve estar pronto para ir.