Você precisa ter um apache ou está na frente do cluster.
Basicamente você usa mod_jk, mod_proxy_ajp ou mod_cluster para gerenciar o failover e o stickyness das sessões.
Agora vamos dizer que você tem 2 servidores jboss (192.168.1.2 e 192.168.1.3) e 1 apache 2.2.xe você quer usar mod_jk por simplicidade (se você quiser que 2 apaches façam HA na camada http você precisa de um balanceador de carga de algum tipo).
A primeira coisa que você faz é baixar mod_jk 1.2.30 , uma vez que oferece melhores recursos para a detecção de nós com nó falho. e coloque-o no diretório modules do apache server_root.
então você vai ao httpd.conf e adiciona:
LoadModule jk_module modules/mod_jk-1.2.30-httpd-2.2.3.so
A próxima coisa a fazer é criar um arquivo chamado workers.properties com o seguinte conteúdo
worker.list=loadbalancer,status
worker.template.port=8009
worker.template.type=ajp13
worker.template.ping_mode=A
worker.template.reply_timeout=90000
worker.template.socket_connect_timeout=10000
worker.template.connection_pool_size=150
worker.template.socket_keepalive=true
worker.node1.reference=worker.template
worker.node1.host=192.168.1.2
worker.node2.reference=worker.template
worker.node2.host=192.168.1.3
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=True
worker.status.type=status
Em seguida, no arquivo httpd.conf, você adiciona as seguintes linhas:
JkWorkersFile conf/workers.properties
JkWatchdogInterval 60
JkMount /* loadbalancer
JkLogFile logs/mod_jk.log
depois vá para a configuração do jboss para 192.168.1.2
no arquivo JBOSS_HOME / server / all / deploy / jbossweb.sar / server.xml
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">
e substitua ou modifique isso:
<Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}"
redirectPort="8443" />
com isso:
<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
emptySessionPath="true" enableLookups="false" redirectPort="8443"
maxThreads="200" connectionTimeout="600000" />
então vá para a configuração do jboss para 192.168.1.3
no arquivo JBOSS_HOME / server / all / deploy / jbossweb.sar / server.xml
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node2">
e substitua ou modifique isso:
<Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}"
redirectPort="8443" />
com isso:
<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
emptySessionPath="true" enableLookups="false" redirectPort="8443"
maxThreads="200" connectionTimeout="600000" />
Explicação: A alteração na tag de conector limita os threads no contêiner da Web para 200 (ou seja, é a quantidade máxima de solicitações simultâneas é capaz de gerenciar) o connectionTimeout garante que se o cliente fecha a conexão (isso é "fecha o navegador") o thread expira após 600 segundos sem uso.
Você pode encontrar tamanhos para esses parâmetros neste aplicativo de appspot criado pela equipe do jboss: lbconfig.appspot.com
CONSIDERAÇÕES DE SEGURANÇA: Proteja ou desabilite o console jmx e / ou o console da web excluindo os diretórios jmx-console.war e de gerenciamento da pasta deploy ou seguindo as instruções neste documento
Você pode encontrar mais informações sobre balanceamento de carga, mod_jk, mod_cluster no jboss wiki