Balanceador de CargaComo foi faladonos posts anteriores, o responsavel pelo balanceamento de carga sera oapache. Para isso o apache utiliza omod_proxy e o mod_proxy_balancer. Com o mod_proxy o apache trabalha como umproxy FTP, http e ssl. Ja o mod_proxy_balancer prove um servico debalanceamento de carga para protocolos HTTP, FTP e AJP13. O mod_proxy_balancerdepende do uso do mod_proxy.Atualmenteexistem dois metodos de balanceamento de carga:- Porquantidades de requisicoes onde cada no do cluster ira receber uma requisicaopor vez de modo em que nenhum dos nos fique sobrecarregado. - Por trafego,onde o balanceador dedica um no do cluster para a requisicao que for trafegarmaior quantidade de informacoes enquanto que as demais requisicoes seraoenviadas para os outros servidores.Iniciando a configuracaoO cenario ondesera feito a configuracao do cluster sera descrito logo abaixo:- Ip doServidor= 192.168.56.101- Aplicacao quesera utilizada neste exemplo sera um sistema para pedir almoco que foidesenvolvido na empresa que eu trabalho. O Sistema e jAlmocoA configuracaodo balanceador de carga sera feita no arquivo de configuracao do Apachehttpd.conf. No CentOS arquivo de configuracao do apache fica dentro dodiretorio /etc/httpd/conf/httpd.conf.Dentro doarquivo httpd.conf insira este trecho no final do arquivo:<VirtualHost192.168.56.101:80>ServerName 192.168.56.101ProxyRequests Off<Proxy 192.168.56:80>Order deny,allowAllow from all</Proxy>ProxyPass /teste balancer://balancerlbmethod=byrequests stickysession=JSESSIONID nofailover=offProxyPassReverse /teste http://192.168.56.101:8080/jAlmocoProxyPassReverse /teste http://192.168.56.101:8081/jAlmoco<Proxy balancer://balancer>BalancerMember http://192.168.56.101:8080/jAlmoco route=node01 loadfactor=1BalancerMember http://192.168.56.101:8081//jAlmoco route=node02 loadfactor=1</Proxy><Location /balancer-manager>setHandler balancer-managerOrder Deny,AllowDeny from allAllow from 192.168.56.101</Location></VirtualHost>Neste trechotemos a configuracao de um virtual host que sera responsavel pelo recebimentodas requisicoes destinadas a url 192.168.56.101/jbroca. Segue abaixo adescricao de cada item desta configuracao:- ServerName:determina o nome do virtual host, neste caso o 192.168.56.101/jAlmoco-ProxyRequestoff: determina que o apache nao sera utilizado como um servidor Proxy ou umreverse Proxy.- ProxyPass/teste balancer://balancer lbmethod=byrequests stickysession=JSESSIONIDnofailover=off: qualquer requisicao destinada ao context /teste sera utilizadoo balanceador de carga balancer paraatender as requisicoes.- lbmethod=byrequests:e onde define o tipo de balanceamento de carga, onde neste caso o balanceamentode carga e por requisicao.- stickysession=JSESSIONID: define que o apache ira direcionar os pedidos de uma mesma secao para o mesmoservidor.- nofailover=off:define que todos os servidores dentro cluster serao capazes de superar a falhaalgum servidor do cluster que se tornar inativo, o apache desviara asrequisicoes deste servidor para outroservidor.As opcoes abaixosao configuracoes utilizadas para corrigir as respostas vindas dos servidoresno cluster que sao balanceados, baseando na requisicao vinda do cliente:ProxyPassReverse/jbroca http://192.168.56.101:8080/jAlmocoProxyPassReverse/jbroca http://192.168.56.101:8081/jAlmocoAgora e ondedeclaramos ao balanceador de carga os membros do cluster com suas respectivascaracteristicas: <Proxy balancer://balancer>BalancerMember http://192.168.56.101:8080/jAlmoco route=node01 loadfactor=1BalancerMember http://192.168.56.101:8081/jAlmoco route=node02 loadfactor=1</Proxy>A ultima opcaohabilita o gerenciamento do balanceador de carga para os navegadores dodominio: 192.168.56.101. Para visualizar o balancer-manager no navegador bastadigitar:http://192.168.56.101/balancer-manager<Location /balancer-manager>setHandler balancer-managerOrder Deny,AllowDeny from allAllow from 192.168.56.101</Location>Com isto, oapache esta configurado para realizar o balanceamento de carga, encaminhando asrequisicoes para os dois servidores dentro do cluster.Para testar setoda configuracao esta correta, inicie os tomcats e inicie o apache se iniciarcorretamente os servidores seu cluster esta funcionando e basta acessar nonavegador para verificar se o balanceador esta funcionando corretamente. No exemplocitado basta acessar: http://192.168.56.101/jAlmocoAcesse em diferentesnavegadores e verifique se realmente o balanceador esta direcionando as requisicoespara cada servidor. Neste exemplo que foi utilizado sera na barra de enderecomostra que as requisicoes estao sendo balanceadas:http://192.168.56.101/jAlmoco/autenticarUsuario.do;jsessionid=9225E01A70F0A90B2283244B2CF554D3.node01 http://192.168.56.101/jAlmoco/autenticarUsuario.do;jsessionid=4B2BF75B6B2F99EAB791D512E52AC626.node02O enderecoretornado mostra as requisicoes divididas nos dois tomcats do cluster. Obalancer-manager tambem