Para configurar um cluster com JBoss AS 7 iremos utilizar o mod_cluster no Apache HTTP Server. O Apache funcionará como um load balancer para o nosso cluster de JBoss e será o ponto de entrada para as aplicações. Anteriormente eu utilizava o mod_jk, mas com o mod_cluster temos várias vantagens:
- Configuração dinâmica dos workers. No mod_jk isso era feito através de um arquivo e agora com o mod_cluster, não é mais necessário. Pode-se configurar uma lista fixa ou o próprio application server pode se publicar como um worker.
- Fator de balanceamento no server. Dessa maneira o load balancer consegue ter métricas mais apuradas e adequadas para efetuar o balanceamento de forma eficiente.
- O AJP é opcional.
- E muitos outros recursos que podem ser vistos nesse documento.
Faça o download do mod_cluster: http://www.jboss.org/mod_cluster/downloads para a sua plataforma. Se você escolher o download dos binários, ele irá ter o Apache HTTP Server já configurado com o mod_cluster. Caso você já tenha o Apache, escolha a opção "dynamic libraries". No meu caso vou escolher a opção completa, pois quero utilizar um apache separado. Extrair na raiz para que ele crie a seguinte pasta: /opt/jboss/httpd.
Abra o arquivo: /opt/jboss/httpd/httpd/conf/httpd.conf e procure pelo seguinte conteúdo no final do arquivo:
# MOD_CLUSTER_ADDS
# Adjust to you hostname and subnet.
<IfModule manager_module>
Listen 127.0.0.1:6666
ManagerBalancerName mycluster
<VirtualHost 127.0.0.1:6666>
<Location />
Order deny,allow
Deny from all
Allow from 127.0.0
</Location>
KeepAliveTimeout 300
MaxKeepAliveRequests 0
#ServerAdvertise on http://@IP@:6666
AdvertiseFrequency 5
#AdvertiseSecurityKey secret
#AdvertiseGroup @ADVIP@:23364
<Location /mod_cluster_manager>
SetHandler mod_cluster-manager
Order deny,allow
Deny from all
Allow from 127.0.0
</Location>
</VirtualHost>
</IfModule>
Altere os dados de acordo, mudando para o hostname ou ip da sua máquina. Pronto a etapa de configuração do httpd já está completa.