configurationmod_proxy_html正确?

我有一个apache2 Web服务器,处理在另一台机器上运行的Rails3应用程序的反向代理。

除了在webapp中生成的URL之外,安装程序不会被mod_proxy_html的configuration重写。

“反向代理场景”正是我想要做的,所以我完全按照我所知道的完成了教程。

我应用或尝试在这里提供的答案在stackoverflow,没有效果。

根据“反向代理scheme”,您需要加载多个模块。 所有这些说明都在我的httpd.conf文件中,当我检查输出

apactectl -t -D DUMP_MODULES 

所有预期的模块显示在列表中。

我的外部Web服务器做的反向代理是在www.ourdomain.org和Rails应用程序可以在apphost.local(服务器是Mac OS X Server 10.6,Rails应用程序服务器是Mac OS X 10.6)在内部提供。

现在正在运行的是通过反向代理访问webapp,如下所示:

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

但没有一个JavaScript文件,CSS文件或其他资产被加载,内部链接到Web应用程序出来的URL缺lessapphost部分,就好像我的重写规则configuration不正确(所以当然,我已经把重点放在并且似乎无法得到任何东西在从主机传递到Apache服务器的过程中添加或删除)。

例如,将鼠标hover在由Web应用程序返回的HTML中的操作链接上,您将获得:

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

这是我的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> 

在我对httpd.conf做出的每一个改变之后,我虔诚地检查apachectl -t只是为了理智。

我绝对不是Apache专家,但是跟随我的所有指令似乎并不否定我在这里做的事情。 但是,然后我没有尝试似乎改变我的浏览器中看到的URL后,请求我的Web应用程序的Apache服务器。

即使你不知道我做了什么不正确的事情,我也会欢迎有关如何让Apache帮助看看它在做什么以及如何处理来自我的web应用程序的html的想法。 这就是我所了解的ProxyHTMLLogVerbose On和L​​ogLevel Debug被设置,但我没有看到日志文件中的任何东西。

也许有一个简单的答案,但是我所见过的大多数(如果不是全部的话)ProxyHTMLURLMap指令在匹配/replace模式的开头都有一个/。 你有没有尝试过你的configuration的这个变种?

 ProxyHTMLURLMap /railsappname/ /apphost/railsappname/ 

如果这没有帮助,你运行的是什么版本的Apache? 如果适用,哪个版本的模块? 从apache 2.4开始,它只与apache捆绑在一起,所以对于旧版本的apache,你必须自己安装(某些版本的)这个模块。

作为替代,你也可以切换到mod_substitute,虽然这需要比mod_proxy_html更多的configuration。

在某些时候,他们删除了一些内置的configuration,这需要你自己添加。 请参阅http://apache.webthing.com/svn/apache/filters/proxy_html/proxy_html.conf,ProxyHTMLLinks和ProxyHTMLEvents指令是您需要添加到您的configuration的指令&#x3002;