Nesse artigo vamos demonstrar a integração do servidor web Apache com o servidor JSP Tomcat. Demonstrarei como instalar, configurar e integrar as switches. Esse artigo foi baseado na distro Debian, Apache2 e Tomcat5.
Fazendo Apache e Tomcat responderem na mesma porta
Como sabemos, o Apache funciona na porta 80, já o Tomcat funciona na porta 8080. Devemos então fazer que as requisições que cheguem na porta 80 sejam direcionadas para a porta 8080 de forma transparente, para isso temos duas possibilidades, a primeira criar um redirecionamento com iptables:
iptables -A FORWARD -s ip_ser_tomcat -p tcp --dport 80 -j REDIRECT 8080
iptables -A FORWARD d ip_ser_tomcat -p tcp --sport 80 -j REDIRECT 8080
Com isso o iptables vai redirecionar todas as conexões que chegarem na porta 80 para a 8080, só que eu testei uma outra forma que eu particularmente gostei mais, vamos criar um proxy reverso, ele vai fazer exatamente o mesmo que o iptables, redirecionar as conexões destinadas a porta 80 para a 8080.
[4] Comentário enviado por leandromoreirati em 20/09/2006 - 23:12h
Quando disse Integrando Apache e o TOMCAT quiz dizer como abordado no ultimo tópico, fazer âmbos os serviços responderem na mesma porta. Como relação ao mod_jk se você observou o artigo corretamente deve ter vizualizado o comando:
#aptitude install libapache2-mod-jk2
Que serve para instalar o mod_jk como usei o apache2 no artigo usei o libapache2-mod-jk2 para a configuração.
Já o mdódulo rewrite, tive vários problemas com o proxy reverso ao nao ativa-lo. Após ativa-lo, meu porxy reverso funcionou sem problemas.
[5] Comentário enviado por tatototino em 21/09/2006 - 06:47h
Entendo, mas você nem mesmo configurou o mod_jk, você só o instalou, nem carregar o módulo você carregou, talvez tenha carregado na instalação(alguns módulos adiciona a linha no "httpd.conf" automaticamente para carregar o módulo), mas mesmo assim você não o configurou!
[8] Comentário enviado por melphos em 23/09/2006 - 12:43h
Para integrar o apache com o tomcat na mesma porta, só faltou você setar o work.properties e configurar as opções do módulo jk em seu httpd.conf.
Um pequeno exemplo, /etc/apache2/conf.d/jk2.conf, coloque:
JkSet config.file /etc/apache2/workers2.properties
no arquivo, /etc/apache2/workers2.properties, adicone:
[shm]
file=/var/log/apache2/mod_jk.log
size=1048576
# Example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
# Uri mapping
[uri:/*]
worker=ajp13:localhost:8009
Pronto, apenas verifique as opções se o tomcat está na mesma máquina e escutando nas portas 8009, se caso não for, mude para a porta desejada, se caso não for o IP local, mude para o do servidor tomcat.
De resto o seu artigo está muito bom, meus parabéns. O que os colegas falaram e eu concordo é que não houve uma integração efetiva com as "ferramentas" apropriadas e sim uma "gambe", com o iptables e mod_proxy e mod_rewrite.
[9] Comentário enviado por leandromoreirati em 24/09/2006 - 15:08h
Caros,
Muito obrigado pelas dicas, relamente cometi 2 pecados capitais nesse artigo o primeiro e que eu realmete não configirei o jdk nos mods do apache e o segundo, eu nao criei um link do workers2.properties que se encontra na pasta /etc/tomcat5 o arquivo esta configurado conforme o melphos demonstrou com muita propriedade. Gostaria imensamente de pedir desculpas a comunidade por tal descuido no artigo. E mais uma vez gostair de agradecer a todos pelas dicas. Eu so nao respondi antes pois o bicho ta pegando pro meu lado e si hoje pude analizar com mais calma o que estava sendo postado.
[10] Comentário enviado por datalann em 02/10/2008 - 08:48h
E aí Galera, blza?
Eu fiz todo o redirecionamento e funcionou no ponto de vista de que está redirecionando, porém a página está em jsf com componentes richfaces e JSF Facelet e quando eu passo a usar o redirecionamento, eu tenho um problema que esses componentes não estão carregando. A página aparece toda desestrutura e as janelas e contornos que existe na página, desaparecem deixando os campos de preenchimento e outros fora do lugar. Lembrando que eu apenas configuro o servidor e que o programador é uma outra pessoa que trabalha aqui comigo. Alguém saberia como resolver isso?