Fiz um post informando a quantidade de WebServers utilizados em todo mundo e comecei a dar mais atenção a carinha que está instalado em 6% dos servidores Web em todo o mundo, é o NGINX. Ele já é utilizado por algumas empresas aqui no Brasil, como exemplo temos a www.certisign.com.br.

A sua performance já foi sitada aqui no blog, chegando a ser 30% mais rápido que o Apache devido a sua simplicidade e pouca quantidade de módulos.

Mas o NGINX vem possui um módulo que aumenta e muito a sua performance, e o Memcached. A performance de um site foi aumentada em 400% devido a utilização em conjunto do NGINX e do módulo memcached.

A implementação utilizada foi a seguinte:

A configuração utilizada do NGINX foi a seguinte:

user  usr usr;
worker_processes  2;

http {
types {
text/javascript      js;
application/xml      xml;
}

# By default, return content sa
default_type  application/xml;

access_log  /home/api/logs/nginx.log  main;

sendfile         on;
tcp_nopush       on;

keepalive_timeout  65;
tcp_nodelay          on;

# app. server(s) / cluster definition
upstream dynamic_srv { server 127.0.0.1:9020; }

server {
listen         80;
server_name  srv;
root          /home/usr;

# Match any request that begins with /dynamic_request
location /dynamic_request {

# Append a file-extension to every request
if ($args ~* format=json) { rewrite  ^/dynamic_request/?(.*)$ /dynamic_request.js$1 break; }
if ($args ~* format=xml)  { rewrite  ^/dynamic_request/?(.*)$ /dynamic_request.xml$1 break; }

# Check if local memcached server can answer this request
memcached_pass 127.0.0.1:11211;

# Send to app. server if Memcached could not ansewr the  request
error_page 404 = @dynamic_request;
}

location @dynamic_feed_id {
# only internal requests can reach this endpoint
internal;

# dispatch to our app_server cluster / instance
proxy_pass http://dynamic_srv;
}

}
}

O que achei mais interessante do NGINX é a facilidade a qual você pode configurar um load balance nele.

Mais detalhes no link

Compartilhar:

Este post tem 3 comentários

  1. Muito bom !

    Tenho uma duvida Gustavo, no caso da empresa utilizar alguns SLBs tais como Foundry e Cisco ACE para fazer balanceamento na camada 7 para os servidores IIS que estão no background, como que o varnish/nginx/memcached entram na historia ?
    Eu consigo colocá-los na frente do meu pool de IIS ?

    valeu

  2. Os equipamentos da foundry com q trabalhei não falavam além de layer 4 – transporte — sendo assim, era só porta. O Cisco Ace é layer 7 mesmo, blz. A arquitetura do seu ambiente dependerá do seguinte estático ou dinâmico — se vc tiver conteúdo estático, nada mais justo que jogar no cache. A coisa muda de figura com conteúdo dinâmico. Aí vc deverá analisar o seu ambiente antes de colocar/configurar o varnish.
    Os balanceadores de carga precisam ter o que balancear, sendo assim, será necessária a instalação de mais servidores varnish/cache

  3. A ideia no caso seria manter o foundry/brocade fazendo o balanceamento layer 4, com um pool de nginx passando as conexões para os IIS no backend.

Deixe uma resposta

Fechar Menu