Configurando o NGINX com SPDY


Leia em 1 minuto

O Google criou um protocolo de rede chamado SPDY (leia-se speedy), com o objetivo de reduzir o tempo inicial de carregamento de páginas web.

O SPDY não veio para substituir o protocolo HTTP. Na verdade, ele modifica o modo como as respostas e requisições HTTP são realizadas. Em vez de realizar diversas requisições para carregar os elementos de uma página, o SPDY estabelece uma única conexão e trabalha com multiplexing, ou seja, pacotes de diversas requisições são combinados e enviados por esta única conexão. Com isso, é possível ter até 64% de redução no tempo de carregamento das páginas.

Mas e quanto aos navegadores que suportam o SPDY? O suporte ainda não é completo, mas a lista já é bastante promissora.

Instalando o NGINX com suporte ao SPDY

Se você se interessou, saiba que o NGINX possui suporte experimental ao SPDY. Esta funcionalidade foi patrocinada pela Automattic, empresa por trás do Wordpress.

Para instalar o NGINX com suporte ao SPDY, você vai precisar compilá-lo à partir do código-fonte.

$ wget http://nginx.org/download/nginx-1.3.13.tar.gz
$ tar xvfz nginx-1.3.13.tar.gz
$ cd nginx-1.3.13
$ wget http://nginx.org/patches/spdy/patch.spdy.txt
$ patch -p1 < patch.spdy.txt
$ ./configure --with-http_ssl_module --with-http_spdy_module
$ make
$ make install

Se você está usando o Ubuntu 12.04 Precise Pangolin, pode usar o repositório Debian da Hellobits, que possui o pacote nginx-plus, com algumas outras extensões como Redis, Websockets e outras.

Primeiro, adicione a chave pública GPG.

$ wget -O - http://apt.hellobits.com/hellobits.key | sudo apt-key add -

Depois, adicione o repositório.

echo 'deb http://apt.hellobits.com/ precise main' | sudo tee /etc/apt/sources.list.d/hellobits.list

Agora basta atualizar a lista de pacotes e instalar o pacote nginx-plus.

$ sudo apt-get update
$ sudo apt-get install nginx-plus

Configurando o NGINX

Você vai precisar de um certificado SSL para poder usar o SPDY. Se você precisa de certificados SSL, recomendo o site CheapSSLs. Um certificado de 5 anos da PositiveSSL custa apenas $25.

Para configurar o NGINX, basta adicionar poucas linhas ao seu bloco server. Veja, por exemplo, as configurações que estou usando no Simples Ideias.

server {
  listen 443 ssl spdy;
  server_name simplesideias.com.br;
  root /var/www/simplesideias/current/public;

  ssl_certificate /etc/nginx/ssl/simplesideias.com.br/ssl.crt;
  ssl_certificate_key /etc/nginx/ssl/simplesideias.com.br/ssl.key;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  ssl_prefer_server_ciphers on;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers RC4:HIGH:!aNULL:!MD5;

  # other config
}

Verifique se as configurações estão corretas e reinicie o servidor.

$ sudo nginx -t
$ sudo nginx -s reload

Se você usa o Google Chrome, existe uma extensão que permite verificar se o site que você está visitando possui suporte ao SPDY. O Firefox possui uma extensão semelhante.

Chrome - Extensão que mostra se SPDY está ativo