[Resolvido]Como integrar o Apache ao Jboss?

Prezados amigos, boa noite!

Alguém tem algum tutorial de como integrar o Apache ao Jboss? Tenho uma aplicação rodando em um servidor Jboss numa máquina, e o apache e outra, e gostaria de direcionar todas as requisições feitas ao Apache para o Jboss. Tanto o Apache quanto o Jboss estão rodando perfeitamente independentes, mas quanto tento canalizar as requisições do Apache para o Jboss me apresenta o seguinte erro no log do Apache:

[Sun Jul 03 23:54:23 2011] [1708:4044] [error] jk_ajp_common.c (1953): (servjboss1) Connecting to tomcat failed. Tomcat is probably not started or is listening on the
wrong port
[Sun Jul 03 23:54:23 2011] servjboss1 10.1.1.5 2.187500

A máquina onde está o Apache possui um IP (192.168.1.2), e a máquina onde está o Jboss possui um outro IP (192.168.0.1). Segue configurações abaixo:

workers.properties (APACHE)

Define worker ‘exemplo’

worker.list=servjboss1

Configura as propriedades do worker ‘exemplo’ (ajp13)

worker.servjboss1.type=ajp13
worker.servjboss1.host=192.168.0.1
worker.servjboss1.port=8009
worker.servjboss1.lbfactor=1
worker.servjboss1.disabled=false
worker.servjboss1.socket_timeout=10
worker.servjboss1.connect_timeout=20000

httpd.conf (APACHE)

LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat “%w %V %T”

JkMount /.jsp servjboss1
JkMount /app/
servjboss1

server.xml (JBOSS)

<Connector port="8009" address="localhost" protocol="AJP/1.3"
     emptySessionPath="true" enableLookups="false" redirectPort="18443" />

  <Engine name="jboss.web" defaultHost="localhost"> ... 


 Será que tem alguma outra configuração a ser feita?
Já pesquisei muito sobre o assunto, mas não tive nenhum sucesso. Alguém poderia me ajudar?????

vc consegue pingar a maquina (jboss) ?

O tutorial está na wiki do JBoss.org:

http://community.jboss.org/wiki/UsingModjk12WithJBoss

A propósito, pelo que vejo nas suas configurações, faltou uma propriedade na Engine do JBossWeb chamada jvmRoute. Algo do tipo:

<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">
.
</Engine>

hummmmmm… é verdade rimolive!!! Então no meu caso onde está escrito “node1”, eu terei que colocar “servjboss1”? Seria isso mesmo?

Exato, e remova esse atributos já que sua intenção não é utilizar Load Balancing:

worker.servjboss1.lbfactor=1
worker.servjboss1.disabled=false

Brother… Segui as suas orientações, mas infelizmente continuou com o mesmo erro:

[Sun Jul 03 23:54:23 2011] [1708:4044] [error] jk_ajp_common.c (1953): (node1) Connecting to tomcat failed. Tomcat is probably not started or is listening on the
wrong port
[Sun Jul 03 23:54:23 2011] node1 192.168.1.2.187500

Em um determinado momento funcionou bem, mas logo voltou a acontecer o erro acima.

Vc teria alguma outa idéia pra me orientar?

Poderia descrever melhor isso? Você conseguiu acesso e depois de um tempo o mod_jk para de redirecionar?

kra, tbm achei muito esquisito, mas isso aconteceu. Talvez eu tenha alterado algo que deixou de direcionar. Hoje mais tarde irei rever os arquivos de configuração e testar, e lhe passarei o que tá rolando. A estrutura é simples -----> Um servidor Apache em uma máquina, e um servidor de aplicação em outra máquina contendo 2 aplicações ear. Nesse servidor configurei as instâncias para rodarem em portas diferentes para não darem conflito (Até aí ta tudo blz). Configurei meu servidor Apache para apontar para as duas aplicações, ou seja, se eu digitar http://192.168.0.1/teste1 deveria chamar a aplicação teste1.ear, se eu digitar http://192.168.0.1/teste2 deveria chamar a outra outra aplicação teste2.ear. O problema tá sendo na conexão entre o Apache e o servidor Jboss.

b[/b]Apache configurado na porta:80
IP: 192.168.1.1
Configuração do workers.properties

Define Node1

modify the host as your host IP or DNS name.

worker.node1.port=18009
worker.node1.host=192.168.1.2
worker.node1.type=ajp13

Define Node2

modify the host as your host IP or DNS name.

worker.node2.port=8009
worker.node2.host= 192.168.1.3
worker.node2.type=ajp13

JBOSS (TESTE1)
Aplicação teste1.ear no Jboss, na porta 8085
IP: 192.168.1.2
A AJP 1.3 Connector on port 18009
Engine name=“jboss.web” defaultHost=“localhost” jvmRoute=“node1”>

JBOSS (TESTE2)
Aplicação teste2.ear no Jboss, na porta 8086
IP: 192.168.1.3
A AJP 1.3 Connector on port 8009
Engine name=“jboss.web” defaultHost=“localhost” jvmRoute=“node2”>

Tem algo errado nessas configurações??

Valeu

Ok, então vocë possui dois servidores JBoss configurados no mod_jk do Apache e as duas aplicações estão nos dois servidores, correto? Já chegou a visualizar no jk-status a situação deles?

Rimolive, perdoe-me pela ignorância, mas como faço pra visualizar no jk-status? O que tá me deixando mais confuso é que quando inicio as duas instâncias, ambas funcionam belezinha quando acesso diretamente, tipo:

http://192.168.1.2:8085/teste1 (diretamente do JBOSS)
http://192.168.1.3:8086/teste2 (diretamente do JBOSS)

Mas quando tento acessá-las via APACHE (http://192.168.1.1/teste1 ou http://192.168.1.1/teste2), o log do mod_jk.log, me apresenta dizendo que: 

Connecting to tomcat failed. Tomcat is probably not started or is listening on the wrong port
Conexão tomcat falhou. Tomcat provavelmente não é iniciado ou está escutando na porta errada

Será que tem algo a mais a configurar no JBOSS?

[quote]JkMount /.jsp servjboss1
JkMount /app/
servjboss1 [/quote]

essa eh a sua configuracao no apache?

se vc estiver tentando acessar algo como ‘teste1’ e ‘teste2’ vc precisa entradas JkMount que mapeiam o contexto que vc quer usar, i.e.

JkMount /teste1 node1
JkMount /teste1/* node1

JkMount /teste2 node2
JkMount /teste2/* node2

outra dica, antes de querer configurar varios servidores de uma soh vez, porque vc nao investe tempo tentando fazer um deles funcionar? depois basta replicar as configuracoes para os outros servidores …

vc esta rodando em um cluster? pois as alteracoes que vc fez em relacao ao ‘jvmRoute’ soh fazem sentido caso seu servidor(es) estiverem em rodando cluster, e mesmo assim se nao for espeficidado, o jboss vai usar um valor padrao

seu workers list lista apenas ‘servjboss1’, mas vc esta chamando seus workers node1 e node2? pra que? os nomes no workers list tem que bater com os nomes dados aos workers

Senhores do conselho!!!

Enfim, resolvi o problema… eu estava procurando o problema, onde não havia. Na verdade o erro estava no httpd.conf, nas configurações onde são direcionadas para o workers.propertie.

Muito Obrigado a todos que contribuiram com ajuda.

Valeu, e até a próxima!!!