Como habilitar HTTP/2 com nginx

O HTTP/2 torna nossas aplicações web mais rápidas, simples e robustas. O http2 abre uma série de novas oportunidades para otimizar nossas aplicações e melhorar o desempenho.
O principal objetivo do http/2 é reduzir a latência permitindo a multiplexação total de solicitações e respostas, minimizando a sobrecarga de protocolos por meio de compactação eficiente do http header, além de adicionar suporte para a priorização de solicitações e envio de dados aos servidores. Existem ainda um grande suporte de outros aprimoramentos de protocolo, como novos mecanismos de controle de fluxo, tratamento de erros e atualização, mas os recursos descritos acima são os mais importantes .
Mãos a obra
Notas – Antes de começar:
- Certifique-se que você tenha instalado em seu domínio um certificado ssl válido. http/2 somente funciona com HTTPS
- Este passo a passo foi escrito utilizando um servidor com Painel CWP Pro (CentOS Web Panel) e CentOS 6, porém, já foi testado no CentOS 7, com ou sem Painel de controle (foram necessárias apenas algumas adaptações lógicas).
– Acesse o SSH de seu servidor como root
Atualizando os packs do OS para a última versão
yum clean all
yum -y update
Atualizando Autoconf:
cd /usr/local/src
rm -rf autoconf-*
wget https://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar zxvf autoconf-latest.tar.gz
cd autoconf-*
./configure --prefix=/usr
make && make install
Atualizando Openssl:
cd /usr/local/src
rm -rf openssl-*
wget https://www.openssl.org/source/openssl-1.0.2q.tar.gz
tar zxvf openssl-1.0.2q.tar.gz
cd openssl-*
./config --prefix=/usr --openssldir=/usr/lib64 shared
make && make install
Instalando Nghttp2:
cd /usr/local/src
rm -rf nghttp2-*
yum install libtool -y
wget https://github.com/nghttp2/nghttp2/releases/download/v1.35.1/nghttp2-1.35.1.tar.gz
tar zxvf nghttp2-1.35.1.tar.gz
cd nghttp2-*
./configure --prefix=/usr
make && make install
Acesse o diretório de configuração do nginx
cd /etc/nginx/conf.d/vhosts/
Edite o arquivo “seudodominio_ssl.conf”
nano seudodominio_ssl.conf
Localize:
server {
listen xxx.xx.xxx.xx:443;
xxx é apenas um exemplo. não altere o ip
Adicione após “:443” ssl http2
server {
listen xxx.xx.xxx.xx:443 ssl http2;
Salve e saia do editor nano ( “ctrl+x “ e “y” )
Reiniciei o nginx
service nginx restart
Agora, vamos verificar se está tudo certo, acesse https://tools.keycdn.com/http2-test
digite a url de seu site para verificar se o HTTP/2 está ativo