博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx下的文件下载防盗链(HttpAccessKeyModule)
阅读量:7119 次
发布时间:2019-06-28

本文共 1429 字,大约阅读时间需要 4 分钟。

本着节约带宽、权限下载的原则,寻觅下载防盗链技术。

一、“referers”方式检测来路

location ~* .(gif|jpg|png|swf|flv)$ {
valid_referers none blocked *.eact.com.cn; if ($invalid_referer) {
return 403; } }

 

仅适用于图片防盗链。现在的大部分下载软件都可以模拟构建来路,其他网站的盗链仍然无法避免。

 

二、php-mysql-odbc-ftp方式

让serv-u的ini配置文件通过odbc与数据库连接,php程序分配临时口令-ftp服务器通过数据库验证下载权限,提供ftp下载服务。

1、优点:

可以有效控制有效期、线程限制、速度限制。基本能够满足需求。本站曾经采取过此方式提供下载

2、缺点

依赖ftp服务器、数据库和他们的通信,频繁操作数据库,易引起故障。

三、php流式输出

由php读取文件,通过验证后使用web server 支持的 sendfile 方式进行流式输出。

1、优点

能够有效控制有效期、权限和速度,很多网站论坛、开源社区都采用此方式。

2、缺点

不能支持断点续传;服务器php模块处理带来一定的硬件消耗;当文件服务器为纯静态时时维护很麻烦。

四、使用web server 防盗链模块

使用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.gztar 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也有相应模块,并能进行通过时间戳的有效期验证

 

参考资料:

五、珍爱带宽,远离迅雷

让 nginx 防止迅雷、快车的多线程下载:

作用域: server location

if ($http_range) {
return 405; }

这样给用户端的第二个线程返回405,只让nginx单线程给用户吐数据。没搜到说明,只是网上的一个帖子~

 

 

转:

转载地址:http://nxnel.baihongyu.com/

你可能感兴趣的文章
教你使用squid搭配dante做代理
查看>>
ecshop调用文章显示上一篇下一篇_无需整理
查看>>
cisco ***笔记
查看>>
执行php程序的时候,报错Allowed memory size of 134217728 bytes exhausted (tried to allocate 83 bytes)...
查看>>
春Phone计划 51cto沙龙上海站
查看>>
HDFS体系结构详解
查看>>
我的友情链接
查看>>
[转]我对CTO的理解
查看>>
RH413-Linux系统下umask测试
查看>>
MYSQLmy-innodb-heavy-4G.cnf配置文件注解
查看>>
HTML5 Audio/Video 标签,属性,方法,事件汇总
查看>>
Android 学习笔记【基础扫盲篇】
查看>>
shiro filter
查看>>
重新排列数字使其刚好比当前值大 Next Greater Element III
查看>>
tomcat虚拟子目录设置
查看>>
C++中sizeof详解
查看>>
elasticsearch集群部署
查看>>
我的友情链接
查看>>
Exchange 2010 OWA更改过期密码
查看>>
我的友情链接
查看>>