// 利用nginx直接下载文件,提高效率
public function download_apk_efficient($internal_file_path,$file_name){
// And redirect user to internal location
header("Content-Type: application/vnd.android.package-archive");
header("Content-Disposition: attachment; filename=".$file_name);
header("X-Accel-Redirect: " . $internal_file_path);
}
调用的:
Module::factory("Download")->download_apk_efficient("/promoter_files/". $relative_file_path, $out_name); //promoter_files是在nginx的innernal中配置的路径,例如我下载/server/hosting/mobilechannel/promoter_download2/12/1.file,这里实际调用的是download_apk_efficient("/promoter_files/12/1.file" ,$out_name)
在nginx里配置:
location /promoter_files/ { #/promoter_files/是我取的名字,表示alias字段代表的路径
internal;
alias /server/hosting/mobilechannel/promoter_download2/; #这里是文件的实际路径
}
相关推荐
很多时候用户需要从网站下载文件,如果文件是可以通过一个固定链接公开获取的,那么我们只需将文件存放到 webroot下的目录里就好。但大多数情况下,我们需要做权限控制,例如下载 PDF 账单,又例如下载网盘里的档案...
下载工具 此加载项将任何文件从媒体池发送到浏览器,作为强制下载。...如果使用nginx ,则必须将以下内容放入配置中: rewrite ^/download[s]?/([^/]*) /index.php?download_utility=download&file=$1 last;
第25章 Nginx与X-Sendfile 第26章 在Nginx的响应体之前或之后添加内容 第27章 Nginx与访问者的地理信息 第28章 Nginx的图像处理 第29章 location中随机显示文件 第30章 后台Nginx服务器记录原始客户端的IP地址 ...
利用apache nginx lighttpd X-Sendfile提供文件下载 http://hi.baidu.com/tianhuimin/item/96ee61176bf75917e3f98616
第25章 Nginx与X-Sendfile 第26章 在Nginx的响应体之前或之后添加内容 第27章 Nginx与访问者的地理信息 第28章 Nginx的图像处理 第29章 location中随机显示文件 第30章 后台Nginx服务器记录原始客户端的IP地址 ...
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件, #对于普通应用,必须设为 on, #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off, #以平衡磁盘与网络I/O处理速度,降低...
第25章 Nginx与X-Sendfile 第26章 在Nginx的响应体之前或之后添加内容 第27章 Nginx与访问者的地理信息 第28章 Nginx的图像处理 第29章 location中随机显示文件 第30章 后台Nginx服务器记录原始客户端的IP地址 ...
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用, #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的...
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn;... sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf;
sendfile on; tcp_nopush on; tcp_nodelay on; #keepalive_timeout 75 20; include gzip.conf; upstream localhost { #ip_hash #ip_hash; server localhost:8081; server localhost:8080; } ...
sendfile on; tcp_nopush on; tcp_nodelay on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; #设定负载均衡的服务器列表 upstream 127.0.0.1 { #设定负载均衡的服务器列表 #ip_hash; ...
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log ... sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65;
例如在 Linux 系统上,Nginx 使用了 epoll,sendfile,File AIO,DIRECTIO 等机制,使得 Nginx 不仅性能高效,而且资源占用率非常低,官方宣称 nginx 维持 10000 个非活动的 HTTP keep-alive 连接仅需要 2.5M 内存。...
它使用sendfile(),并且知道如何在Linux和FreeBSD上使用sendfile。 添加其他系统应该不难。 要将其与linux一起使用,您将需要2.2.x内核和glibc 2.1。 有一些使用userland反弹缓冲区的sendfile仿真代码,它允许在...