【问题标题】:Apache not flushingApache不刷新
【发布时间】:2011-12-15 21:48:37
【问题描述】:

我在 Linux 系统上使用 Apache 2.2.1 和 PHP 5.3.8。

我需要在调用开始时刷新标头,但浏览器一直在等待,直到交付完整的内容。

在命令行上,使用“php test.php”一切都按预期工作,但一旦涉及 apache 就不会。

我什么都试过了。设置 output_buffer=Off,zlib.output_compression=Off,禁用 mod_deflate,SendBufferSize 512。我也在 php 中使用了所有不同的刷新方法。但正如我所说,在命令行上它工作正常。

这是响应头:

  • 日期 2011 年 10 月 26 日星期三 16:37:07 GMT
  • 服务器 Apache/2.2.21(亚马逊)
  • X-Powered-By PHP/5.3.8
  • 连接关闭
  • 传输编码分块
  • 内容类型文本/html; charset=UTF-8

我删除了所有模块,除了这些:

  • Lo​​adModule authz_host_module modules/mod_authz_host.so
  • Lo​​adModule ldap_module modules/mod_ldap.so
  • Lo​​adModule log_config_module modules/mod_log_config.so
  • Lo​​adModule setenvif_module modules/mod_setenvif.so
  • Lo​​adModule mime_module modules/mod_mime.so
  • Lo​​adModule dav_module modules/mod_dav.so
  • Lo​​adModule autoindex_module modules/mod_autoindex.so
  • Lo​​adModule dir_module modules/mod_dir.so
  • Lo​​adModule alias_module modules/mod_alias.so
  • Lo​​adModule rewrite_module modules/mod_rewrite.so

希望有人能帮帮我

【问题讨论】:

    标签: php apache flush


    【解决方案1】:

    您应该尝试发送带有另一个content-type 或不带content-type 的页面。在我们的服务器中,我们遇到了类似的问题,我们发现当content-type 是 html 时,mod_security 会阻止刷新。

    【讨论】:

      【解决方案2】:

      很可能 Apache 刷新正常,但浏览器决定继续缓冲(而不是开始渲染)一段时间,即使在收到初始刷新数据后也是如此。

      来自documentation

      flush() 可能无法覆盖您网站的缓冲方案 服务器和 它对任何客户端缓冲没有影响 浏览器

      除了特定于浏览器的 hack,例如发送大量空格(几年前我不得不求助于此)以使浏览器“重新考虑”之外,您实际上无能为力。

      【讨论】:

      • 嗯,我将“标题”增加到 100kb。还是什么都没有
      猜你喜欢
      • 1970-01-01
      • 2019-03-20
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多