Pular para o conteúdo principal

Integrando Apache HTTP Server com Apache Tomcat

Com o objetivo de ter um ambiente aqui em casa mais parecido com o ambiente que encontramos num serviço de hospedagem java, decidi integrar o Apache HPPT Server com o Apache Tomcat.

O objetivo mais comum para essa integração é a transparência obtida no acesso aos sistemas, ou seja, permitir que se acesse os sistemas que estejam rodando no Tomcat pela porta 80 em vez da porta 8080 que é utilizada por padrão pelo Tomcat. Um exemplo prático para isso é caso você precise rodar sistemas PHP com sistemas JEE no mesmo servidor utilizando a porta 80 para os dois casos.

Existem vários artigos explicando como se fazer essa integração utilizando-se do mod_jk para isso, porém existe um módulo do apache http que torna essa configuração mais simples, o mod_proxy_ajp. Esse módulo já vem incluso no apache http server, bastando apenas ativá-lo. Aqui estou utilizando o Ubuntu 8.10, mas acredito que não deva haver diferenças para outras distribuições linux.

Partindo do princípio de que ambos os servidores estão instalados, a primeira configuração a se fazer é no arquivo $TOMCAT_HOME/conf/server.xml. A alteração é para habilitar o conector do AJP 1.3, que deve ficar da seguinte forma:
< port="8009" style="font-weight: bold;">enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />
Após isso precisamos configurar o Apache HTTP Server. A maneira como fiz aqui foi criar um host virtual para direcionar as requisições para o tomcat. Para isso adicionei no arquivo /etc/hosts mais uma entrada, ficando da seguinte forma:
127.0.0.1 localhost
127.0.0.1 servidorvirtual
Após configurar os hosts vamos habilitar o módulo mod_proxy_ajp:
# cd /etc/apache2/mods-enabled
# ln -s ../mods-available/proxy_ajp.load proxy_ajp.load
E caso não esteja habilitado, fazemos o mesmo procedimento para o módulo proxy, que é uma dependência do mod_proxy.ajp:
# ln -s ../mods-available/proxy.load proxy.load
# ln -s ../mods-available/proxy.conf proxy.conf
Habilitado os módulos, vamos configurar o servidor virtual que redirecionará as requisições ao Tomcat acrescentando ao arquivo /etc/apache2/sites-available/default a seguinte configuração:

ServerName servidorvirtual
ErrorLog /var/log/apache2/ajp.error.log
CustomLog /var/log/apache2/ajp.log combined


AddDefaultCharset Off
Order deny,allow
Allow from all


ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
Pronto, agora é só reiniciar o Apache HTTP Server e o Tomcat. O resultado é que ao acessar http://localhost você estará acessando o servidor HTTP diretamente, e ao acessar http://servidorvirtual o HTTP Server redirecionará a requisição paro o Tomcat.

Comentários

Postagens mais visitadas deste blog

Jquery-rails - Problema ao cancelar uma confirmação

No projeto que estou desenvolvendo agora me deparei com o seguinte problema: ao clicar em um link para excluir um registro, clicando em cancelar no diálogo de confirmação a exclusão era executada. Solução: Substituir o arquivo rails.js pelo arquivo mais recente https://github.com/rails/jquery-ujs/blob/master/src/rails.js .

GWT

Neste post informei que estava começando um projeto particular e que utilizaria as seguintes tecnologias: JSP , Servlet , Struts , Hibernate . Bom, após uma tentativa frustrada de utilizar o YUI (Yahoo User Interface) diretamente com o Struts , decidi tentar aprender somente o que precisava saber sobre Struts primeiro, antes de utilizar alguma coisa diferente no projeto , como interface com AJAX que é o caso do YUI . Novamente fiquei frustrado. Bom, aprendi os conceitos do Struts , fiz alguns testes que funcionaram perfeitamente, inclusive com acesso ao banco de dados utilizando Hibernate . Mas o que me frustrou foi em relação justamente à interface. O motivo dessa frustração foi por que não existe uma padronização que todos todos concordem para integrar o Struts com o JSP . Pesquisando, alguns diziam que o melhor era utilizar as JSTL padronizadas, já para alguns casos a maioria dos desenvolvedores recomendavam a utilização das taglibs do próprio Struts ... Não encontrando...

Efeitos interessantes no buscador do Google

Não sei quando foi alterado, mas hoje quando acessei pela primeira vez o buscador do Google me deparei com a seguinte tela: Nunca havia visto essa página mais limpa... Porém as demais informações aparecem após algum evento, como a movimentação do mouse, a utilização do Tab ou Enter. Bem interessante, e vem da política da Google de manter suas páginas o mais simples possível e, claro, destacar ainda mais sua marca.