Entrando na Web 2.0: habilitando o http/2 em seu servidor

Neste tutorial, iremos ensinar a como instalar o NGINX com suporte a HTTP/2 num servidor CentOS.

Num futuro tutorial, iremos abordar a criação de um servidor NGINX a partir da fonte, compilando somente módulos necessários e também o suporte para o NGX_PAGESPEED, que é a ferramenta da Google para aumentar ainda mais a velocidade de carregamento de websites através da otimização do código fonte diretamente em sua geração.

Para começar, precisamos:

-> servidor CentOS 6 / 64 ou 32 bits
-> certificado SSL
-> domínio registrado e funcional

Vamos começar adicionando o repositório do NGINX no servidor:

nano /etc/yum.repos.d/nginx.repo

Dentro deste arquivo, insira:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Feche-o e salve.

Instale o NGINX:

yum install nginx -y

Provavelmente o httpd já está instalado em seu servidor, então remova-o e pare ele:

service httpd stop
yum remove httpd -y

Agora, podemos prosseguir com a configuração do NGINX.

Edite o arquivo principal e faça a troca da porta de escuta e do protocolo:

nano /etc/nginx/conf.d/default.conf

Troque listen 80; por:

listen 443 ssl http2;

Troque o domínio padrão para o seu domínio (estará como server_name localhost);

server_name meudominio.com.br;

Crie a pasta que irá armazenar seu certificado SSL e sua chave privada:

mkdir /etc/nginx/ssl

Via FTP ou outro modo desejado, envie os arquivos à pasta recém criada de forma com que fiquem parecidos com isto:

Arquivo de certificado: /etc/nginx/ssl/meudominio.com.br.crt
Arquivo de chave privada: /etc/nginx/ssl/meudominio.com.br.key

Agora no arquivo /etc/nginx/conf.d/default.conf novamente, vamos criar o bloco ‘server’ e o bloco com a porta 80, que irá transferir as requisições não-ssl para nosso servidor ssl:

server {
listen 443 ssl http2;
server_name meudominio.com.br;
ssl_certificate /etc/nginx/ssl/meudominio.com.br.crt;
ssl_certificate_key /etc/nginx/ssl/meudominio.com.br.key;
location / { root /var/www/html; index index.html index.htm; }
}

server {
listen 80;
server_name meudominio.com.br;
return 301 https://$server_name$request_uri;
}

Salve e feche o arquivo. Após, reinicie seu nginx e ele já deverá estar respondendo às requisições em SSL e com suporte a HTTP/2.

service nginx restart

Você poderá assegurar que as requisições estão sendo respondidas no novo protocolo com este site:

https://tools.keycdn.com/http2-test

Digite o seu domínio e pressione ‘Test’. A resposta deverá ser parecida com esta, e se estiver verde, está tudo ok!