quinta-feira, 13 de agosto de 2009

Integração Apache + Tomcat com mod_jk no Linux

Existem muitos servidores na internet que utilizam um modulo chamado mod_jk pra integrar o Apache e o Tomcat evitando assim a liberação no firewall da porta 8080 ou outra porta que o tomcat utilize pra escutar requisições, saiba que é relativamente simples realizar esta configuração em ambiente Linux e obter uma intalação integrada do Apache/Tomcat para seu servidor de aplicação pessoal ou pra internet.

Siga os passos seguintes:

Obtenha o Java JDK mais atual no site http://java.sun.com/javase/downloads
Instale da seguinte forma:

# chmod +x jdk-1_6_x_xx-linux-i586.bin
# ./jdk-1_6_x_xx-linux-i586.bin
# mv jdk1.6.x_xx /opt/java


Defina as variaveis de ambiente para o Java.

# vim /etc/profile

Adicione as seguintes linhas no profile:

JAVA_HOME=/opt/java
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin


Obtenha o Apache no site http://www.apache.org, o Tomcat no http://tomcat.apache.org e o mod_jk no http://jakarta.apache.org.

Descompacte e instale o Apache da seguinte forma:

# tar -jxvf httpd-x.x.x.tar.bz2
# cd httpd-x.x.x
# ./configure --prefix=/opt/apache --enable-modules-so
# make
# make install


Descompacte e instale o Tomcat da seguinte forma:

# tar -zxvf jakarta-tomcat-x.x.x.tar.gz
# mv jakarta-tomcat-x.x.x /opt/tomcat


Defina as variaveis de ambiente do Tomcat:

# vim /etc/profile

Adicione as seguintes linhas:

TOMCAT_HOME=/opt/tomcat
export TOMCAT_HOME


Faça logout e logon pra carregar as novas variaveis de ambiente.

Descompacte e instale o mod_jk da seguinte forma:

# tar -zxvf jakarta-tomcat-connectors-1.x.x-src.tar.gz
# cd jakarta-tomcat-connectors-1.x.x-src/jk/native
# ./configure --with-apxs=/opt/apache/bin/apxs
# make
# cp apache-2.0/mod_jk.so /opt/apache/modules

Crie o arquivo "workers.properties" em "/opt/apache/conf" mas pode ser em qualquer lugar desde que o apache consiga acessá-lo, e adicione as seguintes linhas:

workers.tomcat_home="/opt/tomcat"
workers.java_home="/opt/java"
ps=\

# Define worker 'example'
worker.list=ajp13

# Set properties for worker 'example' (ajp13)
worker.example.type=ajp13
worker.example.host=localhost
worker.example.port=8009

worker.example.cachesize=10
worker.example.cache_timeout=600
worker.example.socket_keepalive=1
worker.example.recycle_timeout=300


Edite o arquivo de configuração do apache:

# vim /opt/apache/conf/httpd.conf

Adicione as seguintes linhas:

1 - Na seção de modulos:

LoadModule jk_module modules/mod_jk.so

2 - No final do arquivo

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"

3 - Para que adicionar suas aplicações você deverá "montá-las", para isso adicione as seguintes linhas no final do arquivo:

JkMount /suaaplicacao ajp13
JkMount /suaaplicacao/* ajp13

Pra finalizar inicie os serviços do tomcat:

# /top/tomcat/bin/startup.sh

E do apache:

# /opt/apache/bin/apachectl start

E pronto, agora é so desfrutar dessa funcionalidade acessando o link da sua aplicação.

Em vez de
http://seuservidor:8080/suaplicacao

Agora será
http://seuservidor/suaaplicacao

Dessa forma você não precisará liberar o acesso direto ao tomcat no firewal, o apache é que irá buscar sua aplicação através do modulo mod_jk.so.

:)

Nenhum comentário:

Postar um comentário