proxy reverso http para tomcat

1

Eu configurei um servidor Apache com SSL e proxy reverso para um tomcat

<VirtualHost domain.com:1443>
[...]
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://local.com:8080/
ProxyPassReverse / http://local.com:8080

SSLEngine on
[...]
</VirtualHost>

O Tomcat está escutando em 8080. A questão é que o aplicativo no tomcat está redirecionando o pedido (HTTP 302 Movido temporairly). Por exemplo, se eu usar a URL https: // domain.com:1443/folder, o proxy reverso iniciará a solicitação http: // local.com:8080/folder e, em seguida, o aplicativo redirecionará para "/ subpasta", de modo que A solicitação final é: link . O resultado é um código de erro de solicitação Bad 400, pois a solicitação é HTTP na porta SSL.

Você sabe como posso corrigir esse problema?

Obrigado antecipadamente.

    
por John Q 29.06.2013 / 19:25

1 resposta

0

Em vez do proxy HTTP simples, use proxy_ajp . Adapte o exemplo abaixo para corresponder às suas necessidades, ou seja, cabe a você fazer o proxy de tudo para o contêiner ou apenas para um namespace:

ProxyRequests off
ProxyPassMatch ^/(your_app)(.*) ajp://localhost:8009/$1$2 ttl=120 ping=1

Assegure-se de que server.xml em sua configuração tomcat inclua um ouvinte AJP. O executor é opcional.

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
          maxThreads="150" minSpareThreads="4"/>

<Connector executor="tomcatThreadPool"
           port="8009" protocol="AJP/1.3"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" />
    
por 29.06.2013 / 19:53