¿Cómo puedo reescribir la ubicación raíz de los recursos a los que se hace referencia en las páginas de proxy inverso en Apache 2?

¿Cómo puedo reescribir la ubicación raíz de los recursos a los que se hace referencia en las páginas de proxy inverso en Apache 2?

Contamos con un servidor de aplicaciones ubicado enhttp://foo.bar.

Se debe acceder a él a través de http:// wibble/foo mediante proxy inverso.

Esto lo he logrado, sin embargo, hay cosas en http:// foo.bar que hacen referencia desde /

P.EJ:

/images/bla.jpg

Entonces está intentando obtener http:// wibble/images/blah.jpg en lugar de

http://wibble/foo/images/blah.jpg

¿Alguna idea de cómo puedo conseguir que inserte el prefijo /foo para cualquier cosa a la que se haga referencia desde /?

Respuesta1

mod_proxynuncamodifica el HTML.

Solo se reescribirán los encabezados de respuesta HTTP mencionados específicamente anteriormente. Apache no reescribirá otros encabezados de respuesta ni reescribirá referencias URL dentro de páginas HTML. Esto significa que si el contenido proxy contiene referencias URL absolutas, omitirán el proxy. Un módulo de terceros que buscará dentro del HTML y reescribirá las referencias URL es mod_proxy_html de Nick Kew.

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

Respuesta2

Si está utilizando nginx como servidor de aplicaciones para el usuario, puede usar HttpSubModule para realizar la sustitución. Esencialmente, nginx debería representar la solicitud y realizar la sustitución en el texto devuelto. Sin embargo, creo que no puedes usar esto si tienes compresión en el backend (así que mientras tengas compresión en el servidor de front-end deberías estar bien):

Esencialmente: Nginx -> proxy a apache -> regresar a Nginx -> realizar sustitución -> comprimir y servir

Supongo que existe un módulo similar para Apache y otros servidores.

información relacionada