Como redirecionar a porta 80 (Apache) para a porta 8080 (Tomcat) usando mod_proxy

1

Eu entendo que para redirecionar da porta 80 para a porta 8080 eu posso usar o módulo do Apache mod_proxy,

Eu entendo que tenho que mudar "algo" para ser assim (exemplo de link ):

ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar 

O que eu não entendo é como eu "edito o mod_proxy". Eu encontrei um arquivo chamado mod_proxy.so , mas não é um arquivo de texto que pode ser editado.

O que eu tenho que fazer para fazer essas mudanças, é um arquivo de texto em algum lugar que eu tenho que editar ou alguns comandos que eu tenho que executar?

EDITAR:

Com base nesta pergunta Como usar o mod_proxy para deixar meu índice do Apache ir para o Tomcat ROOT e poder navegar pelos meus outros sites do Apache

Eu editei o httpd.conf para ficar assim:

LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

#Enabling proxy for redirection to tomcat

#ProxyRequests Off

#ProxyPreserverHost On

<Proxy *>
Order deny, allow
Allow from all
</Proxy>
#ProxyPass / ajp://localhost:8009/
#ProxyPassReverse / ajp://localhost:8009/

<Location http://www.mywebserver.com>
Order allow,deny
Allow from all
PassProxy / http://localhost:8080/
PassReverseProxy / http://localhost:8080
</Location>

Eu tentei reiniciar o apache com apachectl -k graceful , mas recebi:

 Syntax error on line 207 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/httpd.conf: Cannot load /etc/apache2/modules/mod_proxy.so into server: /etc/apache2/modules/mod_proxy.so: cannot open shared object file: No such file or directory
Action '-k graceful' failed.

Qualquer informação sobre o que estou fazendo errado ou o que eu posso ler para obter mais informações, seria muito apreciada.

    
por Ankur 14.12.2011 / 09:59

1 resposta

2

O que normalmente faço é primeiro ativar mod_proxy e mod_proxy_ajp . Dependendo da sua distribuição, você a2enmod mod_proxy_ajp e habilita ambos como ajp depende de mod_proxy .

Depois, adiciono algo assim:

<IfModule mod_proxy_ajp.c>
  <Location /tomcat-context>
     ProxyPass ajp://IP-or-FQDN/tomcat-context
     ProxyReversePass ajp://IP-or-FQDN/tomcat-context
  </Location>
</IfModule>

Esta parte é colocada dentro do meu <VirtualHost> . O resto é configuração básica definida pelo SO (assim como sua configuração mostra, com ProxyRequests Off etc.)

UPDATE : O que você precisa alterar ou, pelo menos, verificar é o seu tomcat server.xml. Ele deve ter o ajp-container ativado assim:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Você pode desativar o conector no 8080 se isso for tudo o que você atende do tomcat e se não precisar do back-end. Caso você não tenha acesso a isso, ou as portas para o ajp estiverem desabilitadas, você pode basicamente obter o mesmo percentual de8080. Apenas substitua a tag ajp: // na configuração fornecida por http: // e adicione: 8080 após IP-or-FQDN.

UPDATE 2 Para veicular / , apenas escreva

<IfModule mod_proxy_ajp.c>
  <Location />
    ProxyPass ajp://IP-or-FQDN/tomcat-context
    ProxyReversePass ajp://IP-or-FQDN/tomcat-context
  </Location>
</IfModule>

Certifique-se de comentar a diretiva DocumentRoot /path/to/old/documentroot/ e o <Directory /path/to/old/documentroot/> na configuração do seu apache.

    
por 14.12.2011 / 10:20