30/9/2009 | Tags:cache, hospedagem, memcached, nginx, webserver | Escrito por: Dirceu Pauka Jr.

Nginx é um web server e proxy de alta performance capaz de servir milhares de requisições simultâneas.
Tendo usado desde a época da boo-box, recentemente em dois sites que hospedo e também no BuzzVolume, eu posso dizer algo sobre o famoso “nginx bem configurado”: funciona e me faz dormir tranquilo.
O nginx é um web server. Responde as requisições na porta configurada, faz redirecionamentos, retorna arquivos estáticos e aceita módulos:
A comunidade está contribuindo bastante e é sobre alguns módulos “3th party” que vou falar.
Obs: Por “backend” entenda que é a aplicação Ruby, PHP, Python, “escolha sua linguagem”, que estiver rodando.
NginxHttpUpstreamFairModule
O upstream_fair faz com que as requisições batam no backend que estiver com menos carga. Sem esse módulo as requisições são distribuídas para qualquer backend, mesmo que esse estiver ocupado.
NginxHttpEmptyGifModule
O ngx_http_empty_gif_module mantém na memória um GIF de 1×1 pixels e o entrega diretamente, sem buscar no disco.
Eu considero esse o módulo mais curioso. Ele mostra a preocupação com performance e a facilidade de fazer algo assim com o nginx.
Esse gif de 1×1 pode servir como favicon.ico em sites que não usam icone, evitando que o arquivo (que não existe) seja procurado e retorne um erro. Também pode ser usado como “beacon” para rastreamento de impressões de ads.
NginxHttpLimitReqModule
Construindo o próximo Twitter? Mais um encurtador de URL? O módulo NginxHttpLimitReqModule permite impor limite de requisições por cliente nas suas páginas. Acabe com os engraçadinhos que abusam da API no seu URL-Short.
nginx-ey-balancer
Com o nginx-ey-balancer é possivel limitar o número de requisições simultâneas passadas ao backend. Ao invés de todas requisições cairem na aplicação elas ficam em fila no nginx aguardando um processo disponível. Segurar a requisição na aplicação precisa de mais memória e faz a performance da aplicação cair consideravelmente. Ótima solução desenvolvida pela EngineYard.
NginxHttpMemcachedModule
Memcached é um software desenvolvido para diminuir a carga da base de dados. Ele faz cache de objetos na memória e permite acesso pela interface rede. O NginxHttpMemcachedModule dá ao nginx o poder de procurar por um objeto no memcached e caso encontrar retorna o seu conteúdo para o navegador.
NginxHttpImageFilterModule
NginxHttpImageFilterModule é outro software interessante. Esse desenvolvido pelo criador do nginx, muda o tamanho da imagem na hora de entregar para o cliente evitando armazenar vários “thumbnails” do mesmo arquivo.
Estão surgindo cada vez mais módulos para o nginx. Confira outros “oficiais” e “3th party“.



1 Comentário so far
Leave a comment
Dirs muito bom!!!! Esses módulos são realmente muito interessantes, um nivel de escala animal mencahed aliado ao modulo NginxHttpUpstreamFairModule deve receber uma maior quantidade de requisições.
O nginx é impressionante.
abraço jhow!
By anestesya on 09.30.09 12:56 pm | Permalink
Deixe um comentário
Quebras de linha e parágrafo automáticas, seu email nunca será mostrado, HTML permitido:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>