Bom, sei que vou precisar novamente disso futuramente então…
Uma das maneiras de integrar o apache com o tomcat é 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.. etc..
bom.. então, 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 apache) e porta do AJP que é configurada em server.xml (padrão é 8009)
Agora precisa carregar o modulo de proxy do ajp do apache.
# a2enmod proxy_ajp
E agora habilitar a configuração do arquivo criado.
# a2ensite ajp_tomcat
Pronto, agora só reiniciar o apache.
# /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 especifico.. etc..
11/08/2010 às 11:20
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!
30/11/2010 às 10:15
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.