mod_proxy_html配置 - 截断问题

时间:2012-12-03 16:39:48

标签: apache proxy redhat mod-proxy mod-proxy-html

我尽可能多地环顾四周,而且我已经达到了我完全难倒的程度。

我正在运行一个带有Apache的RedHat服务器,我将其用作代理,位于外部世界和其他两个应用服务器之间,具有完全不同的基础(一个IIS,一个Linux)。

这两个服务器都有正确的内部网络URL,驻留在它们上的应用程序可以理解。应用程序(DotNetNuke和WordPress派生)都生成HTML 5页面,其中包含正确/适当的标记,并在代理之外(即在内部网络上)正确呈现。

然而,当通过代理传递这些页面时,结果似乎是在CSS和JavaScript文件末尾缺少字符。

所以(在实践中),JavaScript代码如下:

... {return f})})(window);

或像这样的CSS:

...
background-position:center left;
background-repeat:no-repeat;
}

...变成这样的代码:

... {return f})})(window

或者像这样:

...
background-position:center left;
background-repeat:no-re

代理设置正在使用mod_proxy和mod_proxy_html Apache模块 - 而且我很确定我遇到的问题是与mod_proxy_html的配置有关,目前看起来像这样:

ProxyHTMLEnable On
ProxyHTMLBufSize  102400
ProxyHTMLExtended On
ProxyHTMLStripComments Off
ProxyHTMLDocType "<!DOCTYPE html>"
ProxyHTMLMeta Off
#ProxyHTMLLogVerbose On
#LogLevel Debug

<Location /xxxxx>
        ProxyPass               http://www.example.com
        ProxyPassReverse        http://www.example.com
        ProxyHTMLURLMap         http://www.example.com /xxxxx
        ProxyHTMLURLMap         / /xxxxx/
</Location>

<Location />
        ProxyPass               http://10.11.0.51/
        ProxyPassReverse        http://10.11.0.51/
</Location>

在此处浏览Apache文档:http://httpd.apache.org/docs/2.4/en/mod/mod_proxy_html.html - 但并未提供任何直接的线索。

有没有人遇到同样的问题?或者有什么东西我很快失踪?

感谢任何帮助!

更新

最终,问题似乎是mod_proxy_html在将所有内容解析为UTF-8编码时的默认行为(当某些内容不是 - 尽管付出了最大的努力,但无法修改)。

为此,经过一些工作后,改为使用mod_substitute(只是将文本解析为文本,忽略文件编码)和缓存解决方案,以加快加载时间。

羞耻mod_proxy_html对这个项目不起作用 - 但最终发现了一种方法!

2 个答案:

答案 0 :(得分:1)

修改

ProxyHTMLDocType "<!DOCTYPE html>" 

ProxyHTMLDocType "<!DOCTYPE html>" XML

注意

ProxyHTMLStripComments Off 

不适用于所有评论。尚未找到解决方案。

答案 1 :(得分:1)

问题与mod_proxy_html中的错误有关(s。http://apache-http-server.18135.x6.nabble.com/PATCH-mod-xml2enc-eats-end-of-file-td5001104.html

我能够验证所描述的行为(请参阅apache的错误日志,使用loglevel debug ),该补丁适用于我 - 虽然它的方法不是一个完美的解决方案。

版本: mod_xml2enc(1.0.4) libxml2(2.7.6-0.9.1)