Encaminhando solicitações do apache (porta 80) para o Tomcat (porta 8080)?

7

Eu quero executar um aplicativo do Tomcat por meio de um URL de site regular, como www.xyz.com . Eu gostaria que a raiz desse domínio agisse como o diretório base para o aplicativo da Web, portanto, cada solicitação para www.xyz.com/a/b/c se tornará www.abc.com:8080/myApp/a/b/c . Idealmente, eu seria capaz de fazer isso de forma transparente e apenas para determinadas aplicações web.

www.abc.com:8080 ainda deve responder a solicitações.

O que preciso fazer para que isso aconteça?

    
por Stefan Kendall 14.05.2010 / 16:24

3 respostas

12

ProxyPass        / http://www.abc.com:8080/myApp/
ProxyPassReverse / http://www.abc.com:8080/myApp/

Leia mais sobre mod_proxy

    
por 14.05.2010 / 19:15
2

Um método mais simples para fazer isso é simplesmente adicionar uma entrada de Host Virtual em seu arquivo conf do Apache. Geralmente localizado em / etc / httpd / conf, adicione algo como isto no final da seção Host Virtual:

<VirtualHost X.X.X.X:80>
ServerName tomcatpage.yourdomain.com
ServerAlias tomcatpage.yourdomain.com
Redirect permanent / http://tomcatpage.yourdomain.com:8080/
</VirtualHost>

Reinicie seu serviço Apache e está pronto.

    
por 14.07.2010 / 19:21
2

Você pode usar mod_rewrite no Apache para fazer isso. Carregue mod_rewrite no seu Apache e no seu vhost www.xyz.com adicione a seguinte regra:

RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1

Isso deve fazer a mágica.

Mais informações sobre mod_rewrite aqui .

EDITAR : Para manter o nome do site nos navegadores, use mod_proxy, apenas acrescentando um [P] ao final do RewriteRule:

RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1 [P]

Isso forçará o Apache a agir como um proxy para esse URL, em vez de apenas reescrever o URL.

    
por 14.05.2010 / 16:35