网站运维、系统运维管理研究
标签类目:防盗链

用accesskey模块实现Nginx服务器深度防盗链

防盗链是很多下载类网站必须做的工作,各个网站会采取不同的策略来实现这一功能,各有优缺点。下面介绍一下Linux主机Nginx服务器下利用 accesskey模块实现Nginx服务器深度防盗链的方法。比起常用的通过判断referer的方法,其防盗链能力更加强劲,就算迅雷什么的也没有办法对付。

一、如何为nginx安装accesskey模块
首先下载Nginx-accesskey模块:http://wiki.nginx.org/images/5/51/Nginx-accesskey-2.0.3.tar.gz
#tar zxvj nginx-accesskey-2.0.3.tar.gz
比如说这时候文件解压到/usr/src/nginx-accesskey-2.0.3
修改其目录下的config文件
#vi ./config
将”$HTTP_ACCESSKEY_MODULE”替换成”ngx_http_accesskey_module”

杀死nginx进程
#kill `cat /usr/local/nginx/nginx.pid`
来到nginx的源代码目录下面 /usr/src/nginx-0.7.54,重新编译nginx
#cd /usr/src/nginx-0.7.54/
#./configure –add-module=/usr/src/nginx-accesskey-2.0.3
(注意:其他nginx编译参数请按照自己的需要添加,这里省略未写)
#make && make install 继续阅读 »

Nginx配置防盗链(转)

有个客户的站点负载过高,于是我们可爱的愤青系统工程师将其的Apache换成Nginx,效果很明显。现在记录一些Apache转换过程中的小细节,留下备忘。

Nginx的防盗链
一般的防盗链如下:

location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.xxx.com www.xxx.net;
if ($invalid_referer) {
rewrite ^/ http://www.xxxcom/403.html;
#return 404;
}
}

第一行:gif|jpg|png|swf|flv
表示对gif、jpg、png、swf、flv后缀的文件实行防盗链
第二行:www.xxx.com www.xxx.net
表示对www.xxx.com www.xxx.net这2个来路进行判断
if{}里面内容的意思是,如果来路不是指定来路就跳转到错误页面,当然直接返回404也是可以的。

NginxHttpAccessKeyModule实现防盗链
如果不怕麻烦,有条件实现的话,推荐使用NginxHttpAccessKeyModule这个东西。

他的运行方式是:如我的download 目录下有一个 file.zip 的文件。对应的URI 是http://www.xxx.com/download/file.zip
使用ngx_http_accesskey_module 模块后http://www.xxx.com/download/file.zip?key=09093abeac094. 只有给定的key值正确了,才能够下载download目录下的file.zip。而且 key 值是根据用户的IP有关的,这样就可以避免被盗链了。

据说NginxHttpAccessKeyModule现在连迅雷都可以防了,可以尝试一下。

返回顶部