【问题标题】:Error "AH01385: Zlib error -2 flushing zlib output buffer" using Embperl, mod_deflate, and Apache 2.4使用 Embperl、mod_deflate 和 Apache 2.4 时出现错误“AH01385:Zlib 错误 -2 刷新 zlib 输出缓冲区”
【发布时间】:2016-03-29 02:41:41
【问题描述】:

我们正在尝试将 Web 应用程序从 Apache 2.2(在 Ubuntu 12.04 上)迁移到 Apache 2.4(在 Ubuntu 14.04 上)。在 2.2 上,我们的应用程序运行良好。在 2.4 中,我们在每个请求的日志中都会收到一个错误,如下所示:

... [deflate:error] ... AH01385: Zlib error -2 flushing zlib output buffer ((null)), referer: ...

除了从 2.2 迁移到 2.4 所需的差异外,两种环境中的 Apache 配置都是相同的。我调查了启用哪些模块的差异,但一无所获。在这两种环境中,我们都使用 Ubuntu 默认的 mod_deflate 配置。我尝试使用 DeflateBufferSize 指令的一些不同值,但没有效果。

作为背景,我们的应用程序是基于 mod_perl 构建的,并且我们的大多数页面都使用 Embperl。该错误似乎与 Embperl 有关 - 我们不会在静态内容(HTML、CSS 等)或普通 Perl/CGI 脚本上收到此错误。

我应该注意,除了日志消息之外,这个问题是无症状的。从用户的角度来看,一切都很好。下来的内容是正确的,并且正确地gzip'd。问题只是这些错误正在向我们的日志发送垃圾邮件。

这个错误是什么意思,我在哪里可以找到原因?

【问题讨论】:

    标签: apache zlib apache2.4 mod-deflate


    【解决方案1】:

    您可以查看zlib manual。搜索 Z_STREAM_ERROR,它可能会给你一些提示(例如 mod_deflate 配置)。

    【讨论】:

    • 感谢您的指点。查看 Apache 源代码,我可以看到 mod_deflate 在调用 deflate() 时得到 Z_STREAM_ERROR。不过,这并没有真正让我有所收获-根据文档,这意味着“流状态不一致”。但它是如何不一致的?为什么?当我们在 Apache 2.2 中时,为什么不呢?我不知道如何找到这些问题的答案。
    猜你喜欢
    • 1970-01-01
    • 2015-04-01
    • 2014-08-22
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多