学习网址:www.only-softs.com
问题:
使用浏览器(如IE等)直接下载大于1G的大文件,浏览器下载至128M自动中断。
解决方法:
只要把Apache的配置文件httpd.conf里<IfModule mime_module>块中的EnableSendfile后的值改为Off即可。
如果没有这一项自己添加上去:EnableSendfile Off,记住要放到上面的块中,不然Apache会启动不起来。
如果不管用可以把EnableMMAP后的值也设为Off试试。
EnableMMAP off
EnableSendfile off
原因分析:
原来在默认情况下,当处理一个请求并不需要访问文件内部的数据时(比如发送一个静态的文件内容),如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端而并不读取文件。这个sendfile机制避免了分开的读和写操作以及缓冲区分配。由于默认是打开的,但有些操作系统对sendfile系统调用支持不够。所以会出现无法传输大于一定容量的html页面。关掉并不影响正常使用。