当通过 XHR 流将文件上传到在 Apache 网络服务器上运行的 PHP 脚本时,有些东西会缓冲整个 POST 正文,然后在整个文件上传后将其交给 PHP。
这是非常占用内存的并且不是最优的。我有另一台服务器以大致相同的方式配置,将 POST 数据直接流式传输到 PHP 脚本,导致内存使用率低。
我一生都无法弄清楚配置差异。我应该寻找什么明显的设置“BufferPostBody Yes”吗?
到目前为止我尝试过的
禁用 mod_security 通过 HTTP 而不是 HTTPs 发送文件 检查 apache 日志、php 日志、syslogs。不存在错误或警告。
我如何测试行为
开始通过 XHR 流通过 JS 上传大文件(235M)。PHP 应该在请求开始后立即输出“执行上传”。相反,只有在通过 POST 上传整个文件后才能看到“执行上传”行。
坏服务器上加载的模块列表是:
核心 mod_log_config mod_logio prefork http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_dir mod_env mod_mime mod_negotiation mod_php5 mod_reqtimeout mod_rewrite mod_setenvif mod_ssl mod_status mod_unique_id