Pesquisar

Mostrando postagens com marcador centos 6. Mostrar todas as postagens
Mostrando postagens com marcador centos 6. Mostrar todas as postagens

domingo, 22 de janeiro de 2012

Nginx configurado como LoadBalance

Estive estudando sobre o nginx uma importante ferramenta em qualquer empresa.

Como o Nginx tem inumeras utilidades, não somente com como front do apache, vou mostrar neste artigo apenas como fazer um loadbalance para conexões com o Apache.

A idéia é ter um proxy para evitar uma carga muito grande no apache. Podemos fazer o mesmo com aplicações java, utilizando o mesmo princípio.

Vou demonstrar aqui uma configuração muito simples usando CentOS com Nginx na frente do Apache.

Configurações do LAB que eu estou usando:

  • 1 maquina com Windows 7 como cliente.
  • 1 maquina com CentOS 6.2 (Servidor do Nginx);
    • hostname abaco1;
    • ip 192.168.0.24;
  • 2 maquinas com Ubuntu 11.04 + apache2;
    • hostname fogao1 e fogao2;
    • ip fogao1: 192.168.0.90;
    • ip fogao2: 192.168.0.91;


Mão na massa:

Supondo que você já tenha o CentOS 6.2 instalado na sua maquina, vamos baixar os devidos pacotes.


  • Primeiro vamos baixar o Repositório EPEL e instalar o repositório.


wget -c http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm


rpm -Uvh epel-release-6-5.noarch.rpm


  • Agora vamos atualizar os repositórios e os pacotes:
yum check-update

yum update

  • Feito isso vamos instalar o nginx e configura-lo;
yum install nginx -y (o yum vai instalar os pacotes do nginx e suas dependencias);

touch /etc/nginx/conf.d/site.conf


vim /etc/nginx/conf.d/site.conf


Veja a conf abaixo:

A linha upstream serve para criar o pool de maquinas que receberão as conexões.


upstream  batatinha  {
   server   fogao1;
   server   fogao2;
}

server {
   server_name www.batatinha.com.br;
   location / {
      proxy_pass  http://batatinha;
   }
}


A chave server é o vhost que aceitará o site www.batatinha.com.br e fará o proxy para a aplicação.
A Maneira como está configurado 50% das requisições irão para a fogao1 e 50% irão para a fogao2, caso seja necessário manter a conexão da sessão(utilizado por diversas aplicações que necessitem de login, etc.) coloque a linha ip_hash na chave upstream acima das linhas de server.


OBS: para que o servidor reconheça os nomes fogao1, fogao2 e o site eu adicionei seus ips no hosts das maquinas, caso não queiram colocar no hosts podem colocar os ips dos servidores que também funciona :D


Feito tudo isso faça o restart do nginx e vamos testar.

Para fazer o teste eu coloquei um HTML basico em cada uma das fogao.

Segue exemplo

Dentro do document root do apache da fogao1
<html>
<body>
<h1> FOGAO1 </h1>
</body>
</html>


Dentro do document root do apache da fogao2
<html>
<body>
<h1> FOGAO2 </h1>
</body>
</html>


Faça o Teste acesse www.batatinha.com.br, para que o teste funcione abra em 2 computadores diferentes.

Pronto load balance criado :D

Espero ter ajudado bastante com o Artigo. Por favor comentem e compartilhem o conhecimento!