Integração Apache => Tomcat | DeServ – Info
Lomadee, uma nova espcie na web. A maior plataforma de afiliados da Amrica Latina.

Integração Apache => Tomcat

By Flávio Silva

Integrando o Apache com o TOMCAT para que as páginas estáticas sejam executadas pelo Apache e as em JSP pelo contêiner TOMCAT, além do direcionamento das aplicações via APACHE, sendo o WebServer de acesso para as aplicações que estão no TOMCAT.

Conceito

Integração APACHE/TOMCAT vou dividir em duas partes e abordar a primeira delas aqui. São elas a integração com apenas “simples”, a qual as páginas ESTÁTICAS serão executadas pelo APACHE (ganho de performance) e as páginas dinâmicas (JSP) executadas pelo contêiner TOMCAT.

Além dessa funcionalidade, nessa primeira integração conseguimos “esconder” as portas do TOMCAT, já que sua aplicação será chamada por uma URL na porta 80 e o APACHE sim, irá pegar sua aplicação no TOMCAT e mostrar ela.

Temos também a segunda integração do APACHE/TOMCAT, que consiste nas vantagens da primeira acrescidas da possibilidade de se realizar LOADBALANCER entre dois TOMCATs usando o APACHE como o WebServer que irá gerenciar essa carga e dividirá ela, porém esse assunto não será abortado aqui.

Pré-requisitos

Iremos instalar os seguintes serviços em um servidor LINUX/UNIX:

  • OPENSSL
  • APACHE
  • TOMCAT
  • TOMCAT CONECTOR(MOD_JK)
  • JDK+JRE(JAVA)

Instalando OpenSSL, Apache, Tomcat e Java

OpenSSL

Baixar última versão do SOURCE em www.openssl.org.

Consideremos que estamos usando a versão 0.98e do OPENSSL, que está em um diretório de instalação de nosso servidor, vamos descompactar e instalar o mesmo:

# tar -xvf openssl-0.9.8e.tar.tar
# cd openssl-0.9.8e
# ./configure –prefix=/usr/local/ssl
# make
# make install

Apache

Baixar o último SOURCE em www.apache.org.

Consideremos que estamos usando a versão 2.2.6 do APACHE, que está em um diretório de instalação de nosso servidor, vamos descompactar e instalar o mesmo:

# tar -xvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# ./configure –prefix=/usr/local/apache2 –enable-ssl=/usr/local/ssl
# make
# make install
# /usr/local/apache2/bin/apachectl start

Pronto, o Apache está instalado com suporte a SSL no diretório padrão que definimos: /usr/local/apache2.

Tomcat e Java

Baixar o último SOURCE em tomcat.apache.org/.

Consideremos que estamos usando a versão 6.0.14 do TOMCAT, que está em um diretório de instalação que iremos usar ele, pois o TOMCAT só precisamos descompactar e não compilar, como os demais.

Usei como padrão o diretório /usr/local para instalação do TOMCAT, por convenção, deixo o nome do diretório com a versão e crio um LINK para ele com o nome “apache-tomcat”, o que me permite mudar de versão sem ter que alterar demais arquivos de configurações do mesmo ou de terceiros.

# cd /usr/local
# tar -xvf apache-tomcat-6.0.14.tar.gz
# ln -s apache-tomcat apache-tomcat-6.0.14/
# vi /etc/profile

Adicionar as seguintes linhas no final do arquivo:

#Tomcat

CATALINA_HOME=/usr/local/apache-tomcat
TOMCAT_HOME=/usr/local/apache-tomcat
export CATALINA_HOME TOMCAT_HOME CLASSPATH

Agora iremos instalar o JAVA, baixe a última versão do BIN JDK no site da SUN e coloque do diretório que iremos instalar ele, no caso /usr/local. Como ele será instalado com o “nome-versão”, também iremos criar um LINK com o nome JAVA apontando para ele, o que também nos permite trocar de versão sem maiores problemas.

# chmod +x jdk-1_5_0_12-linux-i586.bin
# ./ jdk-1_5_0_12-linux-i586.bin

(seguir orientações da instalação – padrão, só YES e ENTER)

# ln -s java jdk1.5.0_12/
# vi /etc/profile

Adicionar as seguintes linhas no final do arquivo:

#Java

JAVA_HOME=”/usr/local/java”
JRE_HOME=”/usr/local/java/jre”
CLASSPATH=”$JAVA_HOME:$JAVA_HOME/lib:$JRE_HOME/lib:.”
MANPATH=”$MANPATH:$JAVA_HOME/man”
JAVA_DOC=”$JAVA_HOME/docs”
PATH=”$PATH:$JAVA_HOME/bin:$JRE_HOME/bin”
export JAVA_HOME JRE_HOME CLASSPATH MANPATH JAVA_DOC PATH

# /usr/local/apache-tomcat/bin/catalina.sh start

Pronto, o TOMCAT foi instalado configurado e iniciado juntamente com o suporte ao JAVA.

Tomcat conector – MOD_JK

Consideremos que estamos usando a versão 1.2.25 do Tomcat-Conector, que está em um diretório de instalação de nosso servidor, vamos descompactar e instalar o mesmo:

# tar -xvf tomcat-connectors-1.2.25-src.tar.gz
# cd tomcat-connectors-1.2.25-src
# cd native/
# ./configure –with-apxs=/usr/local/apache2/bin/apxs
# make
# make install
# vi /usr/local/apache2/conf/httpd.conf

Acrescentar a linha abaixo:

LoadModule jk_module modules/mod_jk.so

# /usr/local/apache2/bin/apachectl restart

Pronto, o MOD_JK foi instalado e configurado para que o APACHE o carregue em sua inicialização. O MOD_JK será o responsável pela comunicação entre o APACHE e o TOMCAT via o protocolo EJB3 do TOMCAT.

Pronto, agora iremos configurar um linha em nosso TOMCAT e dois arquivos de configurações que iremos criar no CONF do APACHE e nossa integração ficou pronta.

Configuração no TOMCAT

Iremos mudar apenas o arquivo server.xml dentro de /usr/local/apache-tomcat/conf/. Iremos definir um NOME para o TOMCAT, esse nome será buscado pelo MOD_JK e servirá para passadas de parâmetros.

# vi /usr/local/apache-tomcat/conf/server.xml

Procurar por:

<!– You should set jvmRoute to support load-balancing via AJP ie :
<Engine name=”Standalone” defaultHost=”localhost” jvmRoute=”jvm1″>
–>
<Engine name=”Catalina” defaultHost=”localhost”>

Iremos adicionar a propriedade “jvmRoute=”tomcat1″” e ficará assim:

<!– You should set jvmRoute to support load-balancing via AJP ie :
<Engine name=”Standalone” defaultHost=”localhost” jvmRoute=”jvm1″>
–>
<Engine  jvmRoute=”tomcat1″ name=”Catalina” defaultHost=”localhost”>

Reiniciar o TOMCAT:

# /usr/local/apache-tomcat/bin/catalina.sh

Configuração no Apache

Vamos criar dois arquivos, um para configurarmos a comunicação com o TOMCAT e outro para configurações básicas do MOD_JK e definição de quais serão os “CONTEX” do TOMCAT que serão executados pelo APACHE.

Arquivo workers.properties:

# vi workers.properties

Adicionar o seguinte conteúdo ao arquivo criado:

#
# workers.properties
#

# In Unix, we use forward slashes:
ps=/

# list the workers by name

worker.list=tomcat1(nome configurado no arquivo server.xml do TOMCAT)

# ————————
# First tomcat server
# ————————
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost(nome do servidor onde temos o tomcat)
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=50
worker.tomcat1.cachesize=10
worker.tomcat1.cache_timeout=500
worker.tomcat1.socket_keepalive=1
worker.tomcat1.socket_timeout=300

# Specify the size of the open connection cache.
#worker.tomcat1.cachesize

#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# —-> lbfactor must be > 0
# —-> Low lbfactor means less work done by the worker.
worker.tomcat1.lbfactor=100 //Definindo que toda a carga será usada apenas para um TOMCAT, é o nosso caso.

#
# END workers.properties

É um arquivo bem simples onde definimos o “nome” do TOMCAT para integração via MOD_JK, “worker.list=tomcat1″ e demais parâmetros para configuração de conexão, onde devemos alterar de acordo com nosso ambiente.

Arquivo tomcat.conf:

Adicionar o seguinte conteúdo ao arquivo criado:

JkWorkersFile /usr/local/apache2/conf/workers.properties

JkLogFile /usr/local/apache2/logs/mod_jk.log

JkLogLevel info

JkLogStampFormat “[%a %b %d %H:%M:%S %Y] ”

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

JkRequestLogFormat “%w %V %T”

JkMount /examples/servlet/* tomcat1
JkMount /examples/* tomcat1
JkMount /examples/jsp/* tomcat1
JkMount /*.jsp tomcat1
JkMount /aplicacao1/* tomcat1

O que destaco são apenas as linhas com “JKMount”, que é o diretório (CONTEX ROOT) do TOMCAT, é o nome do DIR que você acessa sua aplicação.

Vamos adicionar nosso arquivo “tomcat.conf” no “httpd.conf” do Apache:

# vi /usr/local/apache2/conf/httpd.conf

Adicionar a seguinte linha no arquivo:

Include conf/tomcat.conf

Vamos reiniciar o APACHE:

# /usr/local/apache2/bin/apachectl restart

Testando integração

Agora ao invés de acessarmos o endereço do TOMCAT, Ex.:

http://localhost:8080/aplicacao1

Iremos acessar:

http://localhost/aplicacao1

Ele irá mostrar a aplicação que está no TOMCAT e aplicará suas melhorias.

Obs.: Para os diretórios que não estiverem no TOMCAT.CONF, ele irá procurar no DOCUMENT ROOT de nosso APACHE.

Por: Bruno Lima Queiroz

Tags: , , , , , ,

Deixe uma Resposta