Posts tagged: libapache2-mod-jk

Integrando Tomcat5 e Apache2 com Virtual Hosts

ApacheLogo

Faz algum tempo que faço nenhum post aqui e para quebrar esse jejum resolvi postar um artigo sobre como integrar o Tomcat com o Apache e de quebra usar virtualhosts em um Debian, mas a experiencia pode ser utilizada em qualquer outra plataforma. Por acaso a plataforma que os fornecedores me deram para trabalhar era um Debian (todos sabem que prefiro o CentOS).

Quando me entregaram a máquina ela já estava com apache2 instalado, tomcat5 e java 1.6, porém a opção de virtual hosting não estava funcionando e precisavam que o website fosse acessado assim:

http://www.portaldodominio.com.br/

e não

http://201.x.xxx.75/portal

De posse do login de root e ciente que o S.O era um debian 4 arregacei as mangas e comecei o trabalho.

O Modulo JK

Após rápida consulta ao oráculo (google.com.br), descobri que necessitava do mod_jk para que o apache pudesse entender as requisições do tomcat.

simplesmente utilizei o apt-get para fazer esse trabalho “sujo” para mim.

[root@appserver]# apt-get install libapache2-mod-jk

Criando o arquivo workers.properties

Para que o apache consiga se comunicar adequadamente com o tomcat é necessário a criação do arquivo workers.properties. Esse arquivo conterá os detalhes sobre cada processo ligado ao Tomcat definido através do workers que se comunicam através do protocolo ajpv13.
O conteudo do meu arquivo fico assim:

#
# O worker foi chamado de portal
#
#workers.tomcat_home=/opt/tomcat5.5/webapps/
workers.java_home=/usr/java/
ps=/
worker.list=portal
worker.default.port=8080
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

Uma vez configurado e salvo é hora de configurar um virtualhost no apache, para isso criei o arquivo siteportal no diretório /etc/apache/sites-enabled com o seguinte conteudo.

<VirtualHost 201.x.xxx.75:80>
ServerName http://www.portaldodominio.com.br
ServerAdmin suporte@portaldodominio.com.br

DocumentRoot “/opt/tomcat5.5/webapps/portaldodominio”
<Directory “/opt/tomcat5.5/webapps/portaldodominio”>
Options None
AllowOverride None
Order allow,deny
allow from all
</Directory>

JkMount /* portal
JkMount /*.jsp portal

DirectoryIndex index.do index.jsp index.html
# Globally deny access to the WEB-INF directory
<LocationMatch ..*WEB-INF.*.>
AllowOverride None
deny from all
</LocationMatch>
</VirtualHost>

Salvei o arquivo e reiniciei o apache com um apachectl restart

Configurando o Tomcat

Essa foi a hora que vi o porco torcer o rabo, devido a minha pouca vivência com a utilização de Tomcat com virtualhost levei algum tempo para entender como a carrapeta rodava, mas no fim tudo funcionou.

Primeiro inseri o seguinte trecho no arquivo /opt/tomcat5.5/conf/server.xml antes da ultima tag </Engine>.

<listener className=”org.apache.jk.config.apacheConfig” mod_jk=”/usr/apache2/modules/mod_jk.so” workerConfig=”/etc/apache2/workers.properties”/>

<Host name=”www.portaldodominio.com.br” appBase=”/opt/tomcat5.5/webapps/portaldodominio” unpackWARs=”true” autoDeploy=”true”>
<Context path=”" docBase=”" debug=”1″ reloadable=”true”/>
<Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs” prefix=”web1_access_log.” suffix=”.txt” pattern=”common” resolveHosts=”false”/>
</Host>

Repare que o appBase aponta para o local aonde está o website (portaldodominio), essa ação fará com que o tomcat consiga entender que o host name www.portaldodominio.com.br aponta para o webapps correto!

Salve o arquivo e reinicie o apache e o tomcat!

[root@appserver]# /etc/initi.d/tomcat5.5 restart
[root@appserver]# apache2ctl restart

Após o reinicio da dupla acima acessei a utl: http://www.portaldodominio.com.br/ e o website apareceu e não a página default o apache2.

É isso aí pessoal, espero conseguir ajudar alguém com esse pequeno artigo.
Até a proxima!!

WordPress Themes