首页 > linux, 我的网站 > nginx X-Accel-Redirect 文件下载控制

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/

linux, 我的网站