
Estoy ejecutando Tomcat en mi servidor Linux y quiero usar un proxy inverso para esto. Después de leer el manual en apacha para mod_proxy, realmente no entendí la ruta / en el proxypass.
Hago un pequeño ejemplo. el directorio de mi Tomcat es /tomcat/webapp. ¿Es entonces correcta la siguiente configuración?:
<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>
Estaría agradecido, alguien con experiencia puede ayudarme.
Respuesta1
En teoría, cualquier ProxyPass
directiva que elijas funcionará, incluso si eliges actuar http://example.com:8080/webapp/
como proxy http://example.com/foo/bar/baz/
.
Sin embargo, si su aplicación usa rutas absolutas en los hipervínculos, es mejor usar la misma ruta URI en ambosapacheyGatoo tendrás problemas como enesta pregunta. Entonces:
- Si su aplicación está bien escrita, elija su URL favorita y ajuste la implementación de la aplicación web en Tomcat para que se ajuste.
- si su aplicación está mal escrita (por ejemplo, tiene algunas rutas codificadas como enesta preguntaajustar elapacheruta para que se ajuste a la ruta de implementación codificada.
De cualquier manera debes usar:
ProxyPass "/path/to/webapp/" "http://127.0.0.1:8080/path/to/webapp/"
PD: Ya que aparentemente quieresejecutar Tomcat en dos puertos, es mejor si le dice a la aplicación web que está siendo proxy y que 8443
se accede a ese puerto a través de SSL:
<Connector port="8080"
proxyName="example.com"
proxyPort="80"
redirectPort="443" />
<Connector port="8443"
proxyName="example.com"
proxyPort="443"
scheme="https" secure="true" />
por lo que la aplicación web no generará redirecciones inútiles de un puerto 8443
a otro 443
.