nginx X-Accel-Redirect 文件下载控制
2009年1月7日
原来是用的 NginxHttpAccessKeyModule 这个nginx的插件,效果可以,但是对下载控制有些吃力,比如下载次数或之前的下载减分等都不太好做,近来发现了个方法,还是延续之前通过动态程序读取文件内容再转发给用的的方法,但是读取文件内容的工作就从动态程序转到的web服务器,对动态程序的性能是一个极大的解放。
很多服务器都有这个功能,apache可以通过外部mod来实现。
lighttpd X-Sendfile
nginx X-Accel-Redirect
我用的是nginx具体实现方法
nginx conf
location /down{
internal;
alias /www/down;
}
internal为允许nginx读取文件内容,但是外部无法访问
php内
< ?php
// Get requested file name
$path = $_GET[“path”];//所有你需要在下载前做的东西
header(“X-Accel-Redirect: /down/” . $path);
?>
参考:http://blog.kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/lang/en/