¿Configurando mod_proxy_html correctamente?

¿Configurando mod_proxy_html correctamente?

Tengo un servidor web Apache2 que maneja el proxy inverso para la aplicación Rails3 que se ejecuta en otra máquina.

La configuración funciona, excepto que mi configuración para mod_proxy_html no reescribe las URL generadas dentro de la aplicación web.

El"Escenario de proxy inverso"es exactamente lo que estoy tratando de hacer, así que he seguido el tutorial tan completamente como sé.

He aplicado o probado las respuestas proporcionadasaquíen stackoverflow, sin ningún efecto.

De acuerdo con el "Escenario de proxy inverso", desea cargar varios módulos. Todas esas instrucciones están en mi archivo httpd.conf y cuando examino el resultado de

apactectl -t -D DUMP_MODULES

Todos los módulos esperados se muestran en el listado.

Mi servidor web externo que realiza el proxy inverso está en www.ourdomain.org y la aplicación Rails está disponible internamente en apphost.local (el servidor es Mac OS X Server 10.6, el servidor de la aplicación Rails es Mac OS X 10.6).

Lo que funciona ahora es el acceso a la aplicación web a través del proxy inverso como:

http://www.ourdomain.org/apphost/railsappname/controllername/action 

Pero ninguno de los archivos javascript, archivos css u otros activos se cargan, y a los enlaces internos de la aplicación web les falta la parte apphost de la URL, como si mi regla de reescritura estuviera configurada incorrectamente (así que, por supuesto, me he centrado en eso). y parece que no puedo agregar o eliminar nada en el proceso de pasar el html desde el host de aplicaciones y salir a través del servidor Apache).

Por ejemplo, al pasar el cursor sobre un enlace de acción en el código HTML devuelto por la aplicación web, obtendrá:

http://www.ourdomain.org/railsappname/controllername/action

Así es como se ven mis directivas de Apache:

LoadModule proxy_html_module /usr/libexec/apache2/mod_proxy_html.so
LoadModule xml2enc_module /usr/libexec/apache2/mod_xml2enc.so
    ProxyHTMLLogVerbose On
    LogLevel Debug
    ProxyPass /apphost/  http://apphost.local/
    <Location /apphost/>
            SetOutputFilter INFLATE;proxy-html;DEFLATE
            ProxyPassReverse /
            ProxyHTMLExtended On
            ProxyHTMLURLMap railsappname/ apphost/railsappname/
            RequestHeader unset Accept-Encoding
    </Location>

Después de cada cambio que hago en httpd.conf, reviso religiosamente apachectl -t solo para estar cuerdo.

Definitivamente no soy un experto en Apache, pero todas las directivas que siguen a las mías parecen no anular lo que estoy haciendo aquí. Pero nada de lo que intento parece alterar las URL que veo en mi navegador después de acceder al servidor Apache con una solicitud para mi aplicación web.

Incluso si no puede saber qué he hecho incorrectamente, agradecería ideas sobre cómo hacer que Apache me ayude a ver en qué está funcionando y qué le hace al html proveniente de mi aplicación web. Eso es lo que entendí que estaban configurando ProxyHTMLLogVerbose On y LogLevel Debug, pero no veo nada en los archivos de registro.

Respuesta1

Quizás una respuesta un poco simplista, pero la mayoría (si no todas) las directivas ProxyHTMLURLMap que he visto hasta ahora tienen un / al comienzo del patrón de coincidencia/reemplazo. ¿Has probado esta variante de tu configuración?

ProxyHTMLURLMap /railsappname/ /apphost/railsappname/

Si eso no ayuda, ¿qué versión de Apache estás ejecutando? Y si corresponde, ¿qué versión del módulo? Solo viene incluido con Apache desde Apache 2.4, por lo que para versiones anteriores de Apache debe haber instalado (alguna versión de) este módulo usted mismo.

Como alternativa, también puedes cambiar a mod_substitute, aunque eso requiere más configuración que mod_proxy_html.

En algún momento, eliminaron alguna configuración incorporada, lo que requiere que usted la agregue usted mismo. Verhttp://apache.webthing.com/svn/apache/filters/proxy_html/proxy_html.conf, las directivas ProxyHTMLLinks y ProxyHTMLEvents son las que necesita agregar a su configuración.

información relacionada