Pesquisar

Mostrando postagens com marcador linux. Mostrar todas as postagens
Mostrando postagens com marcador linux. 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!


domingo, 8 de janeiro de 2012

Vlan na placa de rede do Ubuntu

Algo muito util que vai ajudar ....


Como taggear a 802.1q na interface do Ubuntu...


Alguns passos importantes.


O ubuntu é muito enjoado em alguns aspectos (herança do debian), o principal deles são pacotes desatualizados, então primeiro e antes de qualquer coisa apt-get update e apt-get dist-upgrade ( faça isso somente se o servidor ainda não estiver em produção :P), outra coisa que atrapalha, mais deve existir por segurança é o sudo, por isso enquanto estiver configurando isso usemos o root :D, sudo su -




  • Supondo que tudo está OK, passamos a segunda parte, instale os pacotes de VLAN;;
    • apt-get install vlan


  • Agora carregue o módulo do kernel 802.1q;
    • modprobe 8021q


  • Feito isso tudo vamos adicionar a vlan na interface de rede, supondo que a interface de rede é a eth0 e a vlan a ser adicionada é a 69 façamos o seguinte;
    • vconfig add eth0 69
      • Com o comando acima Taggeamos a vlan 69 na eth0;


  • Você verá agora que uma outra interface apareceu a eth0.69, vamos configura-la;
    • ifconfig eth0.69 10.0.0.1/24
      • Como podem ver configurei o ip 10.0.0.1 na rede;
    • Vamos ver tudo o que aparece no comando abaixo;
    • ukog@afrodite:~$ ifconfig
      eth0      Link encap:Ethernet  Endereço de HW 00:22:19:69:B5:C5  
                UP BROADCAST MULTICAST  MTU:1500  Métrica:1
                pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
                Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0
                colisões:0 txqueuelen:1000 
                RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
                IRQ:19 Endereço de E/S:0xdead 
      
      eth0.64   Link encap:Ethernet  Endereço de HW 00:22:19:69:B5:C5  
                inet end.: 10.0.0.1  Bcast:10.0.0.255  Masc:255.255.255.0
                endereço inet6: fe80::224:8cff:fe55:458a/64 Escopo:Link
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1
                pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
                Pacotes TX:0 erros:0 descartados:25 excesso:0 portadora:0
                colisões:0 txqueuelen:0 
                RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
      
      
      Como podem perceber no ifconfig apareceram as duas interfaces a 
      eth0 e eth0.69 porem somente 1 esta configurada.




Espero que tenham gostado deste post. Comentem.