使用nginx的第三方模块Http-Access-Key

这个模块可以阻止所有URL中未包含合法访问令牌的访问(防盗链)。访问令牌可以由访问者IP或者其它服务器变量生成,所以可以很好地控制客户端的下载行为。

用户得到的下载地址可能像这样: http://example.com/download/file.zip?key=09093abeac094

1、下载、解压

wget http://wiki.nginx.org/File:Nginx-accesskey-2.0.3.tar.gz

tar zxvf Nginx-accesskey-2.0.3.tar.gz

2、安装

然后编辑 “config” 文件,将 “$HTTP_ACCESSKEY_MODULE” 用 “ngx_http_accesskey_module” 替换。然后编译:

./configure --add-module=path/to/nginx-accesskey

3、配置

修改nginx.conf

location /download {

accesskey             on;

accesskey_hashmethod  md5;

accesskey_arg         "key";

accesskey_signature   "mypass$remote_addr";

}

php端:

 // some code
$url = $filePath.'?'.md5($mypass.$_SERVER['REMOTE_ADDR']);

完成,可以使用了


注:lighttpd也有相应模块,并能进行通过时间戳的有效期验证

参考资料:http://wiki.nginx.org/NginxChsHttpAccessKeyModule

最后修改:2022 年 02 月 26 日
如果觉得我的文章对你有用,请随意赞赏