Habilitado http2, mas ainda sendo veiculado em http1.1

0

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)
  • reiniciei o serviço e o servidor

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
    
por JacobTheDev 20.07.2017 / 18:13

2 respostas

2

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!

    
por JacobTheDev 03.08.2017 / 16:17
1

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.

    
por jmary 25.07.2017 / 17:44