防盗链是很多下载类网站必须做的工作,各个网站会采取不同的策略来实现这一功能,各有优缺点。下面介绍一下Linux主机Nginx服务器下利用 accesskey模块实现Nginx服务器深度防盗链的方法。比起常用的通过判断referer的方法,其防盗链能力更加强劲,就算迅雷什么的也没有办法对付。
一、如何为nginx安装accesskey模块
首先下载Nginx-accesskey模块:http://wiki.nginx.org/p_w_picpaths/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.conf
#vi /usr/local/nginx/conf/nginx.conf
在你需要设置防盗链的主机的下面加入以下内容,比如主机根目录下面download目录下面的文件都要防盗链,那么就加入:
location /download
{
accesskey on;
accesskey_hashmethod md5;
accesskey_arg “key”;
accesskey_signature “password$remote_addr”;
}
注意:这里accesskey_signature后面的password是干扰码,你可以改为自己需要的密码。
设置完毕,重启nginx
#ulimit -SHn 51200
#/usr/local/nginx/sbin/nginx
至此,accesskey模块安装完毕。
二、如何使用防盗链功能
按照以上的设置,download文件夹下所有的文章如果用地址直接引用,比如http://www.xinkexue.com/download/test.rar,都会提示403错误,无法访问到资源,这也就是我们说的防盗链功能已经生效。那么要如何才能让我们的目标用户下载这些文件呢?方法就是我们要给用户一个正确的链接,形如http://www.xinkexue.com/download … 3b5423523952352bg2g
这个key后面的参数是根据前面设定的accesskey_hashmethod和accesskey_signature确定的,比如我们前面的设定就是对password$remote_addr($remote_addr代表客户端传递过来的IP)的值进行MD5加密运算得到的结果。我们要把带有 key值的地址重新定向给目标用户,这样我们的目标用户才能下载到资源,没有key或者key值错误,都将被认为是盗链,而无法下载。
下面我们用PHP脚本的header重定向函数举例说明:
用accesskey模块实现Nginx服务器深度防盗链_第1张图片

Ctrl+Enter 发布

发布

取消

推荐专栏更多

用accesskey模块实现Nginx服务器深度防盗链_第2张图片
带你玩转高可用

前百度高级工程师的架构高可用实战

共15章 | 曹林华

¥51.00 507人订阅
订   阅
用accesskey模块实现Nginx服务器深度防盗链_第3张图片
负载均衡高手炼成记

高并发架构之路

共15章 | sery

¥51.00 573人订阅
订   阅
用accesskey模块实现Nginx服务器深度防盗链_第4张图片
VMware vSAN中小企业应用案例

掌握VMware超融合技术

共41章 | 王春海

¥51.00 430人订阅
订   阅
用accesskey模块实现Nginx服务器深度防盗链_第5张图片
基于Kubernetes企业级容器云平台落地与实践

容器私有云平台实践之路

共15章 | 李振良OK

¥51.00 691人订阅
订   阅
用accesskey模块实现Nginx服务器深度防盗链_第6张图片
网工2.0晋级攻略 ——零基础入门Python/Ansible

网络工程师2.0进阶指南

共30章 | 姜汁啤酒

¥51.00 1949人订阅
订   阅

猜你喜欢

我的友情链接 部署游戏服务器遇到的问题 Nginx工作原理 使用iLO远程管理HP系列服务器 python os.path模块常用方法详解 搭建ELK日志分析平台(下)—— 搭建kibana和logstash服务器 Ansible之playbook的使用 Nginx配置跨域请求 Access-Control-Allow-Origin * 关于Nginx的server_name。 keepalived+nginx+docker实现负载均衡高可用服务 实战Nginx与PHP(FastCGI)的安装、配置与优化 服务器排障 之 nginx 499 错误的解决 企业AD架构规划设计详解 OkHttp配置HTTPS访问+服务器部署 实践出真知——squid的ACL访问控制及sarg日志分析使用验证 磁盘性能 IOPS和吞吐量说明及raid10和raid5性能比较 resin部署安装 详述HP EVA4400/6400/8400/P6000数据恢复解决方案 Citrix实现桌面虚拟化 虚拟机备份
用accesskey模块实现Nginx服务器深度防盗链_第7张图片
用accesskey模块实现Nginx服务器深度防盗链_第8张图片

扫一扫,领取大礼包

0

分享
用accesskey模块实现Nginx服务器深度防盗链_第9张图片
王松
用accesskey模块实现Nginx服务器深度防盗链_第10张图片