我在带有 NAT 的虚拟机(debian lenny、up2date)中运行“Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch”,在处理来自 smb 挂载目录(即来自 vm 主机)的请求时,大约 60% 的 http 响应都是“不完整”的。
我的问题是,我看不到任何失败时响应的模式,因为它们有点旋转。但我能看到的是,一些请求(如 jquery ui)总是在同一位置被截断(javascript 控制台报告语法错误)。
这是不完整响应的示例标头:
Date Fri, 04 Sep 2009 21:09:38 GMT
Server Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch
Last-Modified Sat, 20 Jun 2009 11:53:52 GMT
Etag "1810-2f074-46cc64b731400"
Accept-Ranges bytes
Content-Length 192628
Connection close
Content-Type application/javascript
启用 apache2 模块:
alias.conf authz_user.load dir.load php5.load
alias.load autoindex.conf env.load rewrite.load
auth_basic.load autoindex.load mime.conf setenvif.conf
authn_file.load cgi.load mime.load setenvif.load
authz_default.load deflate.conf negotiation.conf status.conf
authz_groupfile.load deflate.load negotiation.load status.load
authz_host.load dir.conf php5.conf
在我的特定项目中,只有 .js 和 .png 文件受到影响。“主请求”始终可以正常加载。
更新:
apache2ctl -m
输出:
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
php5_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK
答案1
我在从 SMB 或 CIFS 安装的共享提供文件时见过这种情况。尝试关闭发送文件支持使用:
EnableSendfile Off
您可以在主服务器配置、.htacces
文件或 vhost/directory 块中执行此操作。
答案2
好吧,我将文件从已安装的 Windows SMB 共享切换到本地目录,现在一切正常。我没有时间进一步调查这个问题,但我认为问题与 Apache 本身无关。