Chinaunix首页 | 论坛 | 博客
  • 博客访问: 482262
  • 博文数量: 135
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 1441
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-05 20:39
文章分类
文章存档

2012年(2)

2011年(130)

2009年(2)

2008年(1)

我的朋友

分类:

2011-08-16 14:01:18

 

Apache对大文件的支持

2010年9月6日

15:55

  1. Apache对大文件的支持 - [Web]2009-01-31
    :转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://opendream.blogbus.com/logs/34473018.html

    最近使用测试机器下载了4G左右720p高清电影,顺便跑个apache做下载服务,好在家download,结果在家下载缺提示403错误,登陆服务器查询日志,发现如下错误日志:
    Symbolic link not allowed:/var/www/test.mkv
    我是在测试机器上做了个软链接链接到真实的文件存放地址,莫非是文件权限问题,查询文件权限,WEB用户想用读权限.
    将真实文件cp到apache document目录,下载又提示如下:
    (75)Value too large for defined data type: access to /test.mkv failed
    访问httpd.apache.org,在首页Apache 2.2.11 Released摘要中提到了 Large File Support,查询2.2版本最新特性,发现以下内容:
    Large File Support
    httpd is now built with support for files larger than 2GB on modern 32-bit Unix systems. Support for handling >2GB request bodies has also been added.
    查询自己apache版本号,2.0.52,看来2.0.52在32位系统上不支持大于2GB的文件。
    刚好闲着没事,验证下这个结果,并确定2GB真实大小(dd中有GB若干字样,但有GB 1000*1000*1000, G 1024*1024*1024)
    #echo 1024*1024*1024*2 |bc 
    2147483648
    #dd if=/dev/zero of=/var/www/test.bin bs=1MB count=2KB    //
    创建一个2,000,000,000字节大小文件
    #wget --spider
    .......
    长度:2,000,000,000 (2.0G) [text/plain]
    200 OK
    #echo 1 >> test.bin             //
    文件大小已经为2,000,000,002个字节
    #wget --spider
    长度:2,000,000,002 (2.0G) [text/plain]
    200 OK
    看来这里apache里边提到的GB和dd中提到的GB(1000*1000*1000)并不相同,而是1024*1024*1024
    #dd if=/dev/zero/ of=/var/www/test.bin bs=1M count=2K
    #stat test.bin
       File: ‘test.bin’
       Size: 2147483648      Blocks: 4198408    IO Block: 4096  
    一般文件
        .........
    #wget --spider

       ........
    已发出 HTTP 请求,正在等待回应... 403 Forbidden
    19:21:05 错误 403
    Forbidden
    查看apache日志:
    (75)Value too large for defined data type: access to /test.bin failed
    看来2G的文件也不被支持
    同时为了验证是不是2G一下文件都支持,切割test.bin文件
    #split -b 2147483647 test.bin
    #wget --spider

    ......
    长度:2,147,483,647 (2.0G) [text/plain]
    200 OK
    那么2,147,483,649个字节以上的文件是不是都不能下载哪?
    #echo 1 >> xaa
    #wget --spider

    ......
    已发出 HTTP 请求,正在等待回应... 403 Forbidden
    19:31:21 错误 403
    Forbidden
     
    结论: Apache 2.0版本以下(含2.0)在32位操作系统中不支持大于2G文件(含2G),如果需要下载大于2G的文件,可以将该文件切割都小于2G下载或者使用apche 2.2或者以上版本
    PS: 网络中提到一种apache编译方法,编译前先export CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64",然后编译,使用64位进行编译,但此方法暂未验证是否有效.
    该内容均属于茶余饭后,没事找乐的文章,如果有异议,请留言或者发送E-mail,谢谢
  2.  

    Pasted from <http://opendream.blogbus.com/logs/34473018.html>

     

阅读(1409) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~