Nginx反向代理网页开头出现随机字符的解决方法

今天在测试一个网站的时候,发现在网页首部会有随机的4位字符出现,通过反向代理访问一般页面是没有问题的,而且此类问题只出现在 nginx 反向代理之后的页面,不会出现在 Apache原始的页面。

通过查阅相关资料了解到

凡是出问题的页面,其传输方式均为chunked(“Transfer-Encoding: chunked”)。

头部的16进制数(chunk 长度)、尾部的 0(chunk 终结)正是 chunked 传输方式的消息标识。Apache的respone只有一个chunk,而nginx的respone则分为4个chunks,其中第1个chunk的头部、第4个chunk的尾部出现的额外字节正是Apache的respone中原始的chunk 标识。出现额外字符是因为nginx对已经做过chunked的消息重复执行了chunked操作。

解决方法

在对应站点的vhost文件的server或location段中,添加“chunked_transfer_encoding off;”即可。

相关阅读

Nginx反向代理+负载均衡+健康探测+缓存

实例详解Tomcat组件安装+Nginx反向代理Tomcat+Apache使用mod_jk和mod_proxy反向代理和负载均衡

Nginx+Tomcat实现反向代理与动静分离

Apache实现反向代理服务器

Nginx 的详细介绍请点这里
Nginx 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a9ffe5f6964fbac83b582dbe34807c6a.html