Páginas

quinta-feira, 26 de junho de 2014

Configurando o JBoss EAP 6.2 no CentOs 6.5 (Parte 4)


Configurando o Apache e mod cluster.

Vamos utilizar esta solução para que as requisições web sejam respondidas pelo Apache e não pelo JBoss EAP. Esta solução tambem será muito útil para a criação de um cluster.



  Como mostrado nas postagens anteriores, configuramos um Domain Controller e um Host Controller com um servidor apenas configurado. No nosso server-one realizamos um Deploy de uma simples aplicação "example.war".
Para acessar a nossa aplicação de exemplo, foi necessário utilizar o endereço IP do Host Controller 01 e a porta onde se ecnontra o server-one, vamos agora configurar o Apache para receber as requisições HTTP e repassar para o JBoss usando o protocolo AJP, dessa forma utilizaremos um único IP para acessar as nossas aplicações do JBoss sem a necessidade de informar a porta.


Para isso, utilizaremos o Apache nativo do CentOS com o mod cluster. Para tornar as configurações mais próximas de um ambiente de produção, iremos primeiro, configurar um IP virtual na máquina do Domain Controller e associar este IP ao Apache.

Se você não souber como configurar um IP virtual no Linux, siga os passos deste Link.

Eu configurei o IP virtual na máquina do Domain Controller  com o IP: 192.168.56.200

Configurações do Apache

1- Vamos fazer algumas alterações no arquivo de configuração do Apache:

     1.1- Edite o arquivo de configuração através do comando abaixo:

[root@domain]# vim /etc/httpd/conf/httpd.conf 


     1.2-  Localize a linha abaixo e altere para que ela fique comentada, inserindo o ítem marcado em vermelho.

 #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 

   1.3- Localize a linha abaixo e insira o IP virtual (marcado em vermelho) criado para que somente ele fique disponível para acessar o Apache.

 Listen 192.168.56.200:80

  1.4- Salve o arquivo.

2- Vamos agora criar um arquivo de configuração específico para o nosso caso. Com o comando abaixo, crie um arquivo:

 [root@domain]# vim /etc/httpd/conf.d/mod_cluster.conf


2.1- Coloque o conteúdo abaixo no arquivo e salve-o.

LoadModule slotmem_module modules/mod_slotmem.so
LoadModule manager_module modules/mod_manager.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module modules/mod_advertise.so

Listen 192.168.56.200:6666

<VirtualHost 192.168.56.200:6666>
 
<Location />
Order deny,allow
Allow from all
</Location>
 
ManagerBalancerName mycluster
ServerAdvertise on
EnableMCPMReceive On
 
<Location /mod_cluster-manager>
SetHandler mod_cluster-manager
Order deny,allow
Allow from all
</Location>
</VirtualHost>

3- No ítem acima, carregamos no inicio do arquivo algumas bibliotecas que não são nativas do sistema operacional. Para incluí-las, será necessário realizar o download do arquivo Modules.zip e descompactá-los dentro do diretório ("/etc/httpd/modules").

3.1- Após realizar o download e copiá-lo para o diretório "/tmp" da máquina do Domain Controller, execute o comando abaixo para extrair o seu conteúdo:

 [root@domain]# unzip  /tmp/modules.zip -d /etc/httpd/modules


4- Vamos agora configurar o apache para que ele inicie junto com o sistema operacional, para isso, execute o comando abaixo:

 [root@domain]# chkconfig httpd on 

5- Agora vamos iniciar o Apache com o comando abaixo:

 [root@domain]# service httpd start 

6- Para testar o seu funcionamento, acesse o endereço: http://192.168.56.200 e verifique se a tela abaixo foi exibida.



7- Para testar o funcionamento do mod_cluster, acesse o endereço: http://192.168.56.200:6666/mod_cluster-manager e verifique se a tela abaixo será exibida:


Pronto, já temos o Apache devidamente configurado, precisamos agora realizar as configurações necessárias no JBoss para que ele receba corretamente as requisições que irão chegar no Apache.

Configurando o JBoss para receber requisições do Apache

Para realizar esta configuração, utilizaremos o subsystem modcluster.

Ele irá nos auxiliar a receber as requisições Web que chegarem no Apache e
distribuir entre os Host Controllers configurados no JBoss.

1- Edite o arquivo "/opt/jboss/domain/configuration/domain.xml" e localize o subsytem modcluster, conforme mostrado abaixo:

  <subsystem xmlns="urn:jboss:domain:modcluster:1.1">
                <mod-cluster-config advertise-socket="modcluster" connector="ajp">
                    <dynamic-load-provider>
                        <load-metric type="busyness"/>
                    </dynamic-load-provider>
                </mod-cluster-config>
            </subsystem>

2- Insira os ítens marcados em vermelho conforme mostrado abaixo:

  <subsystem xmlns="urn:jboss:domain:modcluster:1.1">
                <mod-cluster-config advertise-socket="modcluster" connector="ajp" 
proxy-list="192.168.56.200:6666" load-balancing-group="${modcluster.lbgroup}">
                    <dynamic-load-provider>
                        <load-metric type="busyness"/>
                    </dynamic-load-provider>
                </mod-cluster-config>
            </subsystem>
.....
<subsystem xmlns="urn:jboss:domain:web:1.5" default-virtual-server="default-host"  native="false" instance-id="${jboss.node.name}">
... 

3- Localize o server-group no arquivo e insira os ítens marcados em vermelho, conforme mostrado abaixo:

  <server-groups>
        <server-group name="server-group-01" profile="full-ha">
            <jvm name="default">
                <heap size="1303m" max-size="1303m"/>
                <permgen max-size="256m"/>
            </jvm>
            <socket-binding-group ref="full-ha-sockets"/>
            <system-properties>
                <property name="modcluster.lbgroup" value="group-01"/>
            </system-properties>
            <deployments>
                <deployment name="example.war" runtime-name="example.war"/>
            </deployments>
        </server-group>
    </server-groups>

4- Salve o arquivo e reinicie o JBoss.


Agora o JBoss já está configurado para receber requisições do Apache utilizando o protocolo AJP.

Para testar, acesse o endereço do Apache + domínio da nossa aplicação de exemplo:

 http://192.168.56.200/example

Verifique se a aplicação será exibida corretamente.

Para visualizar as aplicações disponíveis, basta acessar a interface de gerenciamento do mod_cluster e verificar os contextos publicados.

 http://192.168.56.200:6666/mod_cluster-manager




Até a próxima.

Nenhum comentário :

Postar um comentário