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