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_proxi_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编码时的默认行为(当一些内容不是UTF-8编码时——尽管尽了最大努力,但无法修改)。

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

可耻的mod_proxy_html不适用于这个项目,但最终找到了一种方法!

问题与mod_proxy_html(s。http://apache-http-server.18135.x6.nabble.com/PATCH-mod-xml2enc-eats-end-of-file-td5001104.html)

我能够验证所描述的行为(请参阅apache的错误日志和logleveldebug),该补丁对我有效——尽管它的方法不是一个完美的解决方案。

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

修改

ProxyHTMLDocType "<!DOCTYPE html>" 

ProxyHTMLDocType "<!DOCTYPE html>" XML

注意

ProxyHTMLStripComments Off 

这并不适用于所有评论。还没有想出解决这个问题的办法。

最新更新