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

Linux de bolso

Comecei a faculdade (ciência da computação, escolha meio obvia) esse ano e logo de cara fiquei sabendo que iriamos utilizar linux nos computadores da faculdade, o que achei muito bom. Mas chegando no laboratório de informática vi que estava instalado o CentOS , se não me engano é baseado no Red Hat Enterprise (e não Fedora, como tinha postado antes). Até ai tudo bem, nada contra em usar uma distribuição que não conheço, o problema foi quando percebi que o sistema estava da forma como foi instalado, sem nenhuma configuração extra. Primeiro percebi que a resolução estava em 800x600, e não havia como mudar a resolução para 1024x768, que julgo ser ideal de ser usada. Isso até que podia ser suportado, mas ao tentar usar meu pendrive ele não foi reconhecido automaticamente, ou pelo menos não foi montado automaticamente, e depois tentando monsta-lo manualmente, o sistema só dá permição para o root montar dispositivos, e a senha do root, como não podia ser diferente, não temos acesso. Com es...

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 .