以前介绍过Nginx防盗链
你是否已经不满足于单纯基于referer方式的防盗链了?那你可以试试nginx的access key这个第三方模块。
这个模块可以阻止所有URL中未包含合法访问令牌的访问。访问令牌可以由访问者IP或者其它服务器变量生成,所以可以很好地控制客户端的下载行为。
用户得到的下载地址可能像这样:http://example.com/download/file.zip?key=ff70169437bcbc816b0caccab5cf94fa
1、下载
你可以到http://wiki.nginx.org/NginxHttpAccessKeyModule进行下载
2、安装
编辑config文件,将$HTTP_ACCESSKEY_MODULE替换为ngx_http_accesskey_module,然后编译:
./configure --add-module=/opt/install/nginx-accesskey-2.0.3 --prefix=/usr/local/nginx/
3、配置
location /download { accesskey on; accesskey_hashmethod md5; accesskey_arg "key"; accesskey_signature "mypass$remote_addr"; error_page 404 =200 /$request_uri; }
这样当一个用户将访问地址拷贝给别人时,因为访问ip不同,造成key值不同,从而达到防盗链的目的。