Personal tools

Skip to content. | Skip to navigation

Sections

Blog

You are here: Home Blog

Blog

Showing blog entries tagged as: Infra

Nginx, SPDY agora é real.

Posted by Cleber J Santos at 31/07/2013 16:50
Filed under: Performance, Nginx, Infra

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.
| Comentários

Suporte SPDY no Nginx se aproxima.

Posted by Cleber J Santos at 18/06/2012 12:00
Filed under: Performance, Infra, Tuning, Nginx

Recentemente um dos desenvolvedores do Nginx Valentin Bartenev, anunciou o suporte SPDY para o servidor web Nginx. SPDY (pronunciado speedy), trata-se de um protocolo de rede experimental desenvolvido essencialmente no Google para transporte de conteúdo web e focado em fazer a Web mais rápida.

Apesar de não ser atualmente um protocolo padrão, o grupo que está desenvolvendo o SPDY afirmou publicamente que está trabalhando em direção a uma padronização, e tem implementações de referência no momento disponíveis em ambos Google Chrome e Mozilla Firefox. O protocolo é similar ao HTTP, tendo como objetivo reduzir o tempo de carga de páginas da internet. Isso é conseguido priorizando e multiplexando a transferência dos sub-recursos da página web para que somente uma conexão por cliente seja necessária.

 Encriptação TLS é praticamente onipresente nas implementações do SPDY, e a transmissões são comprimidas com gzip ou DEFLATE em contraste ao HTTP, em que os cabeçalhos não são comprimidos. Além disso, o servidor indica ou até mesmo envia conteúdo ao invés de esperar requisições individuais para cada recurso de uma página. O nome não é um sigla, mas um versão reduzida da palavra "speedy" do inglês.

Este trabalho foi patrocinado pela Automattic que desde 2008 utilizam Nginx e desde então tem feito parte de quase todas as peças de sua infra.

Desde 2011 a empresa já conversava com o pessoal da Nginx para fechar um acordo, onde a Automattic iria patrocinar o desenvolvimento e a integração do SPDY no Nginx, tendo como única exigência final que que o código resultante deva ser liberado sob uma licença de código aberto para que outros possam se beneficiar de todo o trabalho.

Já existem extensões para as versões recentes dos navegadores Google Chrome e Mozilla Firefox que permitem saber se um site já implementam o SPDY, visitando o próprio Google ou o Twitter já podemos perceber que utilizam o protocolo.

“We’d like to say big thanks to the team at Automattic and especially to Pyry Hakulinen who has been great in helping us test and debug this first public version of SPDY module for nginx. Automattic is a great partner, and we will continue to work with Barry and his team on improvements to nginx and to nginx/SPDY in particular.”

Andrew Alexeev – Nginx, Inc.

E melhor que usso, percebi que apenas este site https://barry.wordpress.com implementa o SPDY no Nginx, quando acessado através de SSL e que trata-se do blog de Barry, o atual chefe de sistemas Wrangler na Automattic e responsável pela execução da infra-estrutura distribuída globalmente, no qual deu nota e alguns detalhes da implementação do SPDY no Blog.

 

O futudo do SPDY será fazer parte da fonte oficial do servidor web Nginx, e confesso, estou ansioso para já testar tudo :) então nos próximos dias irei postar novidades sobre os testes, é claro que para quem desejar já testar pode já pegar os patches beta em http://goo.gl/SlaiA.

Para você que deseja também testar o SPDY com o Nginx, leia o link http://nginx.org/patches/spdy/README.txt.

Desvantagens

Pois é, infelizmente nem tudo são flores, duas desvantagens são:
 
  • O conteúdo enviado mesmo que já haja cache é um desperdício de banda.
  • Softwares de filtragem que dependem do HTTP não funcionarão mais.
  • Muito provável que o IE vai demorar para implementar o suporte a este protocolo.
 

Você sabia?

 
  • O navegador Google Chrome e o Chromium já utilizam o SPDY quando se comunicam com os serviços do Google, como o Google Search, Gmail, Chrome sync e quando exibindo anúncios do Google. O Google reconhece que o uso do SPDY é habilitado em comunicações entre o Chrome e os servidores do Google que usam SSL.
  • A partir da versão 11 do Mozilla Firefox e SeaMonkey V2.8 existe o suporte a SPDY, apesar de não ser habilitado por padrão. O suporte pode ser habilitado através da preferencia network.http.spdy.enabled preference em about:config.
  • No Firefox 13 o SPDY é habilitado por padrão.
  • Também no Google Chrome há um parâmetro de linha de comando (--enable-websocket-over-spdy) que habilita uma implementação experimental do WebSocket sobre SPDY.
  • E também podemos utilizar o Google Chrome para inspecionar as sessões do SPDY, acessando uma URL especial: 
chrome://net-internals/#events&q=type:SPDY_SESSION%20is:active
Para mais informações sobre as especificação do protocolo por favor acesse:  http://www.chromium.org/spdy/spdy-protocol
| Comentários
Document Actions
Spinner