Servidor de aplicações java tomcat integrado com o apache 2

TomcatOlá pessoal,

Mais um tutorial ao velho estilo receita de bolo, passo-a-passo. Iremos ver como instalar o JAVA + TOMCAT trabalhando
de forma integrada com o APACHE em um servidor web. Acompanhem..

Obs: Este How-to é para distribuições debian-like.

1 – Instalando o java:

# apt-get update && apt-get install sun-java6-jdk

2 – Baixando o tomcat. Aqui estou usando a versão mais recente enquanto escrevo, a 7.0.25:

# cd /opt
(este é o diretório que estou utilizando, porém antes de alguém querer vir me dar aulas me relembrar sobre FHS,
você pode usar outro como /usr/local por exemplo)
# wget -c http://linorg.usp.br/apache/tomcat/tomcat-7/v7.0.25/bin/apache-tomcat-7.0.25.tar.gz
# tar -zxvf apache-tomcat-7.0.25.tar.gz
# ln -s /opt/apache-tomcat-7.0.25 tomcat 

3 – criando o nosso script de start/stop/restart para o tomcat, tornando-o executável e colocando na inicialização:

# nano /etc/init.d/tomcat
#!/bin/bash #Tomcat auto-start # description: Auto-starts tomcat # processname: tomcat # pidfile: /var/run/tomcat.pid export JAVA_HOME=/usr/lib/jvm/java-6-sun case $1 in start) sh /opt/tomcat/bin/startup.sh ;; stop) sh /opt/tomcat/bin/bin/shutdown.sh ;; restart) sh /opt/tomcat/bin/bin/shutdown.sh ; sh /opt/tomcat/bin/bin/startup.sh ;; esac exit 0
# chmod +x /etc/init.d/tomcat
# update-rc.d tomcat defaults
# ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
# ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat
4 – Instalando o Apache:
# apt-get install apache2

5 – Vamos agora realizar a integração do apache com o tomcat usando o AJP Connector, conforme você pode conferir na documentação oficial que cito no final do post. Segundo a documentação constatei que o Conector AJP responde na porta 8009, então somente preciso direcioná-lo para a porta 80 (apache) e assim estará realizada a integração. Continuando:

5.1 – Suba o módulo proxy_ajp

# a2enmod proxy_ajp

Enabling module proxy_ajp.

Run ‘/etc/init.d/apache2 restart’ to activate new configuration!

5.2 – Edite o httpd.conf conforme abaixo:

# nano /etc/apache2/httpd.conf
# Aplicacao 1
ProxyPass       /<java-app>           ajp://localhost:8009/<java-app>
# Aplicacao 2
ProxyPass       /<java-app>           ajp://localhost:8009/<java-app>

5.3 – Reiniciando o apache:

# /etc/init.d/apache2 restart

Restarting web server: apache2apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName … waiting .apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName.

5.4 – Realizando os testes:

Neste momento você pode bloquear no firewall a porta 8009 por critério de segurança, já que as requisições serão enviadas para a porta 80 (apache)

# iptables -A -p tcp --dport 8009 -j DROP

Abra o browser e acesse a sua aplicação http://ip-do-servidor/<java-app> Bem, é isso. Dúvidas, sugestões ou críticas construtivas são sempre bem-vindas.

Referências:

http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html

http://tomcat.apache.org/download-70.cgi

http://tomcat.apache.org/tomcat-7.0-doc/proxy-howto.html#Apache_2.0_Proxy_Support