下载服务器上有众多的软件资源, 可是很多来源不是本站,是迅雷、flashget, 源源不断的带宽,防盗链绝对是当务之急. 使用来源判断根本不靠谱,只能防止一些小白站点的盗链,迅雷之类的下载工具完全无效,如果你是nginx的话,使用secure link完美解决这个问题,远离迅雷.本文仅用于下载服务器,不适用于图片防盗链.
安装nginx
默认情况下nginx不会安装secure_link模块,需要手动指定,配置参数如下
1
2
3
4
./configure --with-http_secure_link_module \
--prefix=/usr/local/nginx-1.4.2 --with-http_stub_status_module
make
make install
配置nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
listen 80;
server_name s1.down.ttlsa.com;
access_log /data/logs/nginx/s1.down.ttlsa.com.access.log main;
index index.html index.php index.html;
root /data/site/s1.down.ttlsa.com;
location / {
secure_link $arg_st,$arg_e;
secure_link_md5 ttlsa.com$uri$arg_e;
if ($secure_link = "") {
return 403;
}
if ($secure_link = "0") {
return 403;
}
}
}
php下载页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
作用:生成nginx secure link链接
站点:www.ttlsa.com
作者:凉白开
时间:2013-09-11
$secret = 'ttlsa.com'; # 密钥
$path = '/web/nginx-1.4.2.tar.gz'; # 下载文件
下载到期时间,time是当前时间,300表示300秒,也就是说从现在到300秒之内文件不过期
$expire = time()+300;
用文件路径、密钥、过期时间生成加密串
$md5 = base64encode(md5($secret . $path . $expire, true));
$md5 = strtr($md5, '+/', '-');
$md5 = str_replace('=', '', $md5);
加密后的下载地址