Nginx, SPDY agora é real.

Já faz um tempo, postei aqui no Blog falando sobre o suporte ao módulo SPDY que estava próximo de ser real no Nginx, venho acompanhando o assunto desde 2012,  a discussão e testes no Google e no chromium.

Após ler sobre o assunto e começar a ver que também o Nginx estava iniciando testes com um módulo que daria suporte ao protocolo me entusiasmei a também inciar testes, então após algum tempo, cá estou eu para finalizar o post. De fato ainda não é um protocolo muito usado, não é um módulo que todos os SysAdmin estão avaliando e usando, creio que por que não saberem, por ainda não ser tão bem divulgado, mas acredito que de fato este se torne um padrão para acelerar conexões SSL, dado que o Google já está usando como padrão no seu buscador.

Desde a versão 1.3.15 do Nginx já temos suporte não nativo do módulo, isso significa que podemos compilar o Nginx e habilitar o suporte ao SPDY desde que tenhamos os requerimentos para isso.

Para quem deseja instalar e começar a utilizar, aqui vai a dica de como fazer, antes de mais nada gostaria de reforçar que, infelizmente tanto o IE quanto o Safari não suportam SPDY. Você poderá verificar a tabela de compatibilidade para suporte de protocolo de rede SPDY em navegadores de desktop e móveis.

Requerimentos.

  • libssl 1.0.1+.
  • libpcre 3, libpcre3-dev.
  • Compilador C (ex. GNU C Compiler)
  • Navegador com suporte ao SPDY (ex. Google Chrome)

Garantindo que o sistema atenda os requisitos podemos seguir instalando o Nginx com o suporte ao módulo, então façamos:

$ cd /tmp $ wget http://nginx.org/download/nginx-1.4.2.tar.gz $ tar -xzf nginx-1.4.2.tar.gz

Com o comando acima estamos descompactando o Nginx versão 1.4.2 no qual iremos compilar.

$ cd nginx-1.4.2 $ ./configure --with-http_spdy_module --with-http_ssl_module $ make $ sudo make install

Lembre-se de que existem outros parâmetros que podem ser passados na compilação, como o local onde o Nginx será instalado por exemplo e outros suportes, mas não irei abordar neste post.

Após a instalação você poderá configurar o Nginx com o certificado normalmente como você já deve ter feito antes, a diferença é que agora para habilitar de fato o suporte ao módulo SPDY devemos adicionar spdy na configuração do listen do nosso Nginx como no exemplo abaixo:

 server { listen 127.0.0.1:443 ssl spdy; server_name mysite.com; access_log logs/ssl-access.log; error_log logs/ssl-error.log; ssl_certificate ssl/mysite.crt; ssl_certificate_key ssl/mysite.key; ...

Para testar você pode instalar no Chrome ou no Firefox uma extensão.