estou executando o Tomcat no meu servidor Linux e quero usar um proxy reverso para isso. Depois de ler o manual no Apache para mod_proxy, eu realmente não entendi o /path no proxypass.
faço um pequeno exemplo. o diretório do meu tomcat é /tomcat/webapp. Então esta seguinte configuração está correta?:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ProxyRequests Off
ProxyPass /tomcat/webapp http://127.0.0.1:8080
ProxyPassReverse /tomcat/webapp http://127.0.0.1:8080
</VirtualHost>
eu ficaria grato, alguém com experiência pode me ajudar.
Responder1
Teoricamente, seja qual for ProxyPass
a diretiva que você escolher, ela funcionará, mesmo se você optar por proxy http://example.com:8080/webapp/
como http://example.com/foo/bar/baz/
.
Entretanto, se sua aplicação usa caminhos absolutos em hiperlinks, é melhor usar o mesmo caminho URI em ambos.Apacheegatoou você terá problemas como emessa questão. Então:
- se seu aplicativo estiver bem escrito, escolha seu URL favorito e ajuste a implantação do webapp no Tomcat para adequá-lo.
- se o seu aplicativo estiver mal escrito (por exemplo, tiver alguns caminhos codificados como emessa questãoajusta aApachepath para se ajustar ao caminho de implantação codificado.
De qualquer forma você deve usar:
ProxyPass "/path/to/webapp/" "http://127.0.0.1:8080/path/to/webapp/"
PS: Já que aparentemente você querexecute o Tomcat em duas portas, é melhor informar ao webapp que ele está sendo proxy e que a porta 8443
é acessada por SSL:
<Connector port="8080"
proxyName="example.com"
proxyPort="80"
redirectPort="443" />
<Connector port="8443"
proxyName="example.com"
proxyPort="443"
scheme="https" secure="true" />
portanto, o webapp não gerará redirecionamentos inúteis de porta 8443
para porta 443
.