Apache httpd 2 e Tomcat com AJP

Uma das maneiras de integrar o apache http com o Tomcat (ou outro servidor como Jetty, Jboss, Glassfish, …) é usando o proxy protocolo AJP, onde permite que o apache receba a requisição e a repasse para o tomcat, o qual pode, inclusive ficar em uma rede interna, atrás de um firewall.

Como exemplo dessa integração, segue os passos:

No apache, cria-se um novo arquivo em /etc/apache2/sites-available/ com um nome qualquer (ex. ajp_tomcat), com o seguinte conteudo:


Listen 9000
NameVirtualHost *:9000
<VirtualHost *:9000>
ServerName localhost
ErrorLog /var/log/apache2/ajp.error.log
CustomLog /var/log/apache2/ajp.log combined
<Proxy *>
AddDefaultCharset Off
Order deny,allow
Allow from all
</Proxy>
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>

Onde:

  • 9000 é a porta que o apache vai atender as requisições a ser passadas para o tomcat.
  • ajp://localhost:8009/ é o servidor onde está o tomcat rodando (no caso na mesma máquina do httpd) e porta do AJP que é configurada em server.xml (padrão é 8009)

Agora precisa carregar o modulo de proxy do ajp do httpd.
# a2enmod proxy_ajp

E agora habilitar a configuração do arquivo criado.
# a2ensite ajp_tomcat

Pronto, agora só reiniciar o httpd.
# /etc/init.d/apache2 force-reload

E acessar http://localhost:9000/

Pode-se usar desse recurso para, por exemplo, fazer o tomcat escutar na porta 80, configurando por domínio/subdomínio específico. Outra utilização desse recurso é para fazer balanceamento de carga para requisições no servidor de aplicações.

Anúncios

2 Respostas to “Apache httpd 2 e Tomcat com AJP”

  1. Eduardo Ramos Says:

    Meu amigo, outra maneira que encontrei de fazer isso foi usando o mod_jk. É um tanto mais complicado configurar do que usando seu método, mas não tenho a mínima idéia de qual seria a mais elegante. Gostei do seu blog!

  2. Fábio Arezi Says:

    Na verdade a solução mais “elegante” atualmente é usar o mod_cluster do jboss (pode-se usar com tomcat também) onde o mod_cluster usa o proxy_ajp por baixo dos panos e também um protocolo dele de balanceamento de carga. Uma hora escrevo um post sobre isso.


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: