首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache代理导致ERR_CONTENT_DECODING_FAILED错误

Apache代理导致ERR_CONTENT_DECODING_FAILED错误
EN

Stack Overflow用户
提问于 2016-11-18 18:32:22
回答 1查看 5K关注 0票数 6

我正在尝试将Apache服务器(A)的反向代理配置到不同机器(B)上的另一个Apache web服务器。

使用我目前正在使用的配置,我可以访问位于服务器B上的网页,就好像它在服务器A上一样,但是对某些资产的请求经常会导致ERR_CONTENT_DECODING_FAILED (至少在chrome中)。当我使用简单的重定向而不是代理时,这种情况不会发生。

我浏览了请求和响应头,文件传输似乎一切顺利:

请求:

代码语言:javascript
复制
GET /app1/assets/css/vendor.min.css?1470017050 HTTP/1.1
Host: some.host.address
...
Accept: text/css,*/*;q=0.1
Accept-Encoding: gzip, deflate, sdch

响应:

代码语言:javascript
复制
HTTP/1.1 200 OK
...
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/css;charset=utf-8
Connection: Keep-Alive
Transfer-Encoding: chunked

我在服务器A上使用了下面的配置:

代码语言:javascript
复制
ProxyPreserveHost on
ProxyPass "/app1/" "http://some.host.address:8080/app1/"
ProxyPassReverse "/app1/" "some.host.address:8080/app1/"
ProxyHTMLURLMap "http://some.host.address:8080" "/app1"

<Location /app1/>
        ProxyPassReverse /app1/
        ProxyHTMLEnable On
        ProxyHTMLURLMap / /app1/
</Location>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-20 13:49:38

当后端服务器使用压缩而代理服务器在重写过程中不处理压缩内容时,就会发生ERR_CONTENT_DECODING_FAILED错误。

我在这个维基html文档中找到了有用的信息。

我成功地尝试了以下几点(重写前膨胀):

代码语言:javascript
复制
ProxyHTMLEnable On
SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyHTMLURLMap / /app1/

然后,在读取了mod_proxy_html页面上的注释(现在删除了)之后,我对此进行了修改(应该正确处理字符编码):

代码语言:javascript
复制
ProxyHTMLEnable On
RequestHeader unset Accept-Encoding
ProxyHTMLCharsetOut *
ProxyHTMLURLMap / /app1/
ProxyHTMLURLMap /app1/ /app1/
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40683850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档