我在压缩大于 8000 个字符的 HTML 文件时遇到了一个问题(记录在 这个问题在 stackoverflow 上)。大于该大小的纯 HTML 文件会导致服务器无法传送内容,从而导致浏览器给出“服务器重置连接”消息或类似信息。
如果我通过删除包含“SetOutputFilter DEFLATE”的行来禁用相关目录的压缩,那么大小限制将被删除,但当然页面不会被压缩。本 Apache 文档指出默认的放气缓冲区大小为 8KB,这大致对应于我达到的大小限制,但添加行“DeflateBufferSize 20480”对可压缩的页面大小没有影响,所以我想这不是我需要添加或更改的参数。
服务器端包含或 AJAX 调用生成的输出通常远大于 8000 个字符,并且压缩后没有问题。只有使用纯 HTML 文件时我才会遇到问题。
如何增加模块 deflate 压缩的文件的大小?
编辑:除了禁用 mod_deflate 之外,我没有找到其他解决方案,而是将 HTML 放入另一个文件中,并使用服务器端包含来显示它。虽然不太理想,但它可以完成工作,并且该页面不是主项目的一部分。
答案1
根据“模块文档”:http://httpd.apache.org/docs/2.2/mod/mod_deflate.html该DeflateBufferSize
指令不控制可能被压缩的文件的大小,而是控制碎片正在缩小。较大的文件(即您引用的 AJAX 调用)正在变得碎片化并被压缩成碎片。
我猜测该错误是由于其他原因造成的mod_deflate
。