刚刚将旧机器升级到 Ubuntu 10.04.2 LTS。Apache 不会向浏览器显示超过大约 2K 的图像。小图像似乎显示良好。静态 HTML 和 PHP 也继续正常工作。
安装:
apache2 2.2.14-5ubuntu8.4 apache2-mpm-prefork 2.2.14-5ubuntu8.4 apache2-utils 2.2.14-5ubuntu8.4 apache2.2-bin 2.2.14-5ubuntu8.4 apache2.2-common 2.2.14-5ubuntu8.4
这是在浏览器中无法正常显示的图像的 ngrep:
T 192.168.0.4:32907 -> 192.168.0.54:80 [美联社] GET /path/path/logo.png HTTP/1.1..主机:192.1 68.0.54..Connection:保持活动..接受:application/xml,application/xhtml+ xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5..User-Ag ent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML,如 Gecko)Chrome/9.0.597.98 Safari/534.13..Accept-Enco ding: gzip,deflate,sdch..Accept-Language: en-US,en;q=0.8..Accept- 字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.3.... T 192.168.0.54:80 -> 192.168.0.4:32907 [A] HTTP/1.1 200 OK..日期:2011 年 3 月 9 日星期三 05:28:38 GMT..服务器:Apa che/2.2.14 (Ubuntu)..最后修改时间:2010 年 10 月 5 日星期二 11:59:17 GMT ..ETag: "17b6f4-15fe-491dd63eb2f40"..Accept-Ranges: bytes..Conten t-Length: 5630..Keep-Alive: timeout=15, max=100..Connection: Keep -Alive..Content-Type: image/png.....PNG........IHDR...!...v...... .%.....sRGB.........bKGD.................pHYs..................时间.. 等等...
这对我来说没问题!
我尝试过 firefox 和 chrome,它们都可以很好地显示小图像,但是当请求大图像时,浏览器会提示下载文件。
当图像文件保存到本地计算机时,它已损坏,保存时间也很长,这让我觉得浏览器看不到从apache发送的内容长度标头。此外,当我查看保存的图像文件时,它包含来自 apache 的标题,以及顶部的一些垃圾,如下所示:
vi logo.png: ^@^UÅd^@$^]V^S^H^@E^@^Q,n!@^@@^F^@^@À¨^@6À¨^@^D^@P^Y¬ rÇŹéw^P^@Ú^@^@^A^A^H ^@^GÝ^]^@pbSHTTP/1.1 200 OK^M 日期:2011 年 3 月 9 日,星期三 04:47:04 GMT^M 服务器:Apache/2.2.14 (Ubuntu)^M 最后修改时间:2010 年 10 月 5 日,星期二 11:59:17 GMT^M ETag:“17b6ff-157c-491dd63eb2f40”^M 接受范围:字节^M 内容长度:5500^M 保持活动:超时=15,最大值=94^M 连接:Keep-Alive^M 内容类型:图像/png^M ^M PNG^M 等等...
有任何想法吗?它让我发疯。
apache 错误日志中没有任何内容,权限也很好(因为图像数据在那里,只是有些损坏)。
这个 ubuntu 机器上也没有代理或 iptables。
谢谢堆!!
戴夫
ps:刚刚在另一台计算机上尝试了 IE,同样的问题:( pps:重新启动服务器,没有帮助。
更新:
感谢那些 wget 的想法:
这是来自远程机器的 wget 输出(它无法读取标头)
dbaker@fatburt:~$ wget http://foo/static/images2/nav_sprite.jpg --2011-03-10 17:41:06-- http://foo/static/images2/nav_sprite.jpg 解决 foo... 192.168.0.54 正在连接到 foo|192.168.0.54|:80... 已连接。 已发送 HTTP 请求,正在等待响应... 200 无标头,假设为 HTTP/0.9 长度:未指定 保存到:`nav_sprite.jpg'
这是来自本地服务器的 wget 输出返回到自身(工作正常)
wget http://foo/static/images2/nav_sprite.jpg --2011-03-10 17:44:51-- http://foo/static/images2/nav_sprite.jpg 解决 foo... 192.168.0.54 正在连接到 foo|192.168.0.54|:80... 已连接。 已发送 HTTP 请求,正在等待响应... 200 OK 长度:79192 (77K) [图像/jpeg] 保存到:`nav_sprite.jpg'
更新:
感谢@uesp 将“EnableMMAP off”添加到/etc/apache2/httpd.conf 并重新启动apache 修复了它,不知道为什么,但确实如此。
干杯!
您可以尝试以下几点:
EnableSendfile off在 Apache 配置中设置并重新启动(请参阅Apache 核心文档)。也可以尝试EnableMMAP off(有关与您的问题非常相似的问题,请参见此处)。| 归档时间: |
|
| 查看次数: |
5930 次 |
| 最近记录: |