O HTTP/2 é a maior evoluçao do velhinho protocolo HTTP/1.1, desde que este foi publicado em 1997! Tem como objetivo responder ao aumento exponencial da utilização da Internet, oferece inumeras vantagens em termos de eficiência, velocidade e segurança e é suportado pela maioria dos browsers atuais.

Os repositórios originais do Debian 8 “Jessie” não têm as versões mais recentes de alguns pacotes, pelo que é necessário recorrer a repositórios com conteúdos mais recentes, tais como o Debian backports e o Dotdeb.

1. Ativar os repositórios Debian Backports

É necessário ativar os repositórios Debian Backports para a instalação do OpenSSL 1.0.2, um requisito do protocolo ALPN.

Para adicionar o repositório debian beckports, crie ou edite o ficheiro /etc/apt/sources.list.d/backports.list:

# file /etc/apt/sources.list.d/backports.list
## Debian backports
# jessie-backports
deb http://ftp.debian.org/debian jessie-backports main

2. Ativar os repositórios dotdeb.org

Os repositórios dotdeb fornecem uma versão recente do nginx com suporte para HTTP/2. Para adicionar o repositório dotdeb.org, crie ou edite o ficheiro /etc/apt/sources.list.d/dotdeb.list:

# file /etc/apt/sources.list.d/dotdeb.list
## Dotdeb.org sources
deb http://packages.dotdeb.org jessie all
# deb-src http://packages.dotdeb.org jessie all
# Nginx with full HTTP/2 support
deb http://packages.dotdeb.org jessie-nginx-http2 all
#deb-src http://packages.dotdeb.org jessie-nginx-http2 all

A chave pública do Dotdeb também deve ser instalada:

root@server:~# wget -qO - http://www.dotdeb.org/dotdeb.gpg | sudo apt-key add -

3. Atualizar a base de dados do APT

root@server:~# apt update

4. Instalar ou atualizar openssl

root@server:~# apt -t jessie-backports install openssl

5. Instalar ou atualizar o nginx

root@server:~# apt install nginx

6. Reiniciar o nginx

root@server:~# systemctl restart nginx

Verificação

Verificar a versão do nginx:

root@server:~# nginx -V
nginx version: nginx/1.10.2
built with OpenSSL 1.0.1t  3 May 2016 (running with OpenSSL 1.0.2j  26 Sep 2016)
TLS SNI support enabled
#[...]

Se o site estiver corretamente configurado, poderá comprovar que suporta HTTP/2 aqui.

{% include figure image_path="/assets/images/2016/11/fribeiro-http2.png" caption=“Fribeiro.org suporta HTTP/2” alt=“Fribeiro.org suporta HTTP/2” %}

Referências