proxy inverso - comprensión del paso de proxy - apache mod_proxy

proxy inverso - comprensión del paso de proxy - apache mod_proxy

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 ProxyPassdirectiva 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 8443se 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 8443a otro 443.

información relacionada