httpd não serve url relativo do tomcat, por que não?

4

Em um servidor CentOS 7 , estou tentando configurar httpd para agir como reverse proxy para tomcat . Eu tenho httpd funcionando perfeitamente no sentido em que eu digito http/mydomain.com e ele exibe conteúdo estático localizado no DocumentRoot designado. Eu também tenho tomcat funcionando perfeitamente em que tomcat exibe um arquivo war designado quando eu digito http/my.server.ip:8080 . O arquivo war redireciona todos os usuários não autenticados para o padrão /login url para que eles possam entrar antes de usar o site. Isso funciona bem em tomcat . Mas quando eu comentar o DocumentRoot e adicionar ProxyPass e ProxyPassReverse , recebo a seguinte mensagem de erro no navegador:

Proxy Error

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /login.

Reason: DNS lookup failure for: server.ip.address:8009login

Meu VirtualHost é o seguinte:

<VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAlias mydomain.com
    ErrorLog /var/log/httpd/mydomain_com_error.log
    CustomLog /var/log/httpd/mydomain_com_requests.log combined
    ProxyPass / ajp://server.ip.address:8009
    ProxyPassReverse / ajp://server.ip.address:8009
</VirtualHost>

Também me certifiquei de descomentar o seguinte conector em server.xml :

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Você pode ler todo o arquivo server.xml localizado em um site de compartilhamento de arquivos clicando neste link .

Apache está obviamente falando com tomcat e trabalhando com o arquivo war , porque apache descobriu como ser redirecionado para o padrão /login url. Mas como posso corrigir minha configuração para que / login e outros URLs relativos sejam exibidos corretamente?

Não sei se o mod_jk está ou não instalado.

    
por CodeMed 26.12.2014 / 21:21

1 resposta

4

Anexe um / às duas linhas ProxyPass , pois parece que tomcat está redirecionando para login em vez de /login . Use:

ProxyPass / ajp://server.ip.address:8009/
ProxyPassReverse / ajp://server.ip.address:8009/
    
por 26.12.2014 / 23:01