segunda-feira, 9 de fevereiro de 2009

Integrando o Apache2 com o Tomcat

Saudações mais uma vez.

Novamente deparei-me com a necessidade de mapear no Apache uma aplicação disponibilizada por outro servidor de aplicações - desta vez o Tomcat. Neste pequeno artigo descrevo como realizar tal tarefa de maneira bastante simples num servidor Ubuntu.

A integração entre o Apache e o Tomcat se dá com o auxílio do módulo mod_jk.

Supondo que você já disponha em seu servidor ambos o Apache2 e o Tomcat devidamente instalados e funcionando, necessita-se instalar o mod_jk. Para isto, execute no terminal:
$ sudo apt-get install libapache2-mod-jk
Terminada a instalação, precisamos ainda realizar umas poucas configurações, tanto do lado do Apache, como do lado do Tomcat.

1º Passo:

Crie um arquivo chamado workers.properties na raiz do seu apache. No caso do Ubuntu:
$ sudo touch /etc/apache2/workers.properties
Edite este arquirvo para que o mesmo contenha as seguintes linhas:
workers.tomcat_home=/usr/lib/apache-tomcat
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.list=worker1

worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1
Certifique-se de informar os caminhos corretos para os locais onde estão instalados o Tomcat (1ª linha) e a JVM (2ª linha). Além disso, a configuração acima assume que o Tomcat está instalado na mesma máquina que o Apache.

Salve o arquivo.

2º Passo:

Edite o arquivo de configuração do Apache:
$ sudo mcedit /etc/apache2/httpd.conf
Acrescente as seguintes linhas:
# Localização do arquivo workers.properties
JkWorkersFile /etc/apache2/workers.properties

# Localização do arquivo de logs
JkLogFile /var/log/apache2/mod_jk.log

# Configuração do jk log level [debug/error/info]
JkLogLevel info

# Configuração do formato do log
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicando o envio do SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat configurando o formato da requisição
JkRequestLogFormat "%w %V %T"

# Montagem da aplicação jsp-examples
JkMount /jsp-examples worker1
JkMount /jsp-examples/* worker1
As últimas três linhas indicam as aplicações do Tomcat a serem mapeadas pelo mod_jk. Nesse caso, uma aplicação chamada jsp-examples.

Salve e feche o arquivo.

Para testar a configuração, reinicie ambos os serviços.

Referências
  • http://www.howtoforge.com/apache2_tomcat5_mod_jk_integration