Skip to content

小小前端

明月本无心,行人自回首。

Menu
  • 前端开发
  • 编程技术
  • SQL语句
  • Linux
  • 生活/旅行
  • JSEditor
  • MiniBarCMS
  • About
  • 隐私政策
Menu

几种Nginx服务器防盗链详细设置

Posted on 2015年7月3日 by king2088

使用过VPS的站长应该都了解Nginx服务器了,Nginx以其强大的性能著称。今天就来给大家说说Nginx服务器防盗链的设置。
根据一些网上提供的资料以及实验成功的防盗链设置,下面我整理了一下,和大家一起分享。
1、Nginx一般常用的防盗链设置
location ~* \.(gif|jpg|png|swf|flv|zip)$ {
valid_referers none blocked www.egtch.com ;
if ($invalid_referer) {
rewrite ^/ http://www.egtch.com/404.html;
#return 404;
}
}
红色部分:gif|jpg|png|swf|flv|zip表示对gif、jpg、png、swf、flv、zip后缀的文件实行防盗链(可根据自己的需要进行修改)
蓝色部分:表示对www.egtch.com这个来路进行判断
绿色部分:if{}里面内容的意思是,如果来路不是指定来路就跳转到http://www.egtch.com/404.html页面。
紫色部分:假如将#删除,而且再将第4行代码删除,就直接返回404了。

2、针对图片目录防止盗链
location /images/ {
alias /data/images/;
valid_referers none blocked server_names *.egtch.com egtch.com ;
if ($invalid_referer) {return 403;}
}
红色部分:即为要防盗链的图片文件夹
蓝色部分:即为防盗链文件所在的网站的域名
紫色部分:直接返回403错误,当然你也可以将其返回其他错误!

3、使用第三方模块ngx_http_accesskey_module实现Nginx防盗链
实现方法如下:
1)下载NginxHttpAccessKeyModule模块文件:Nginx-accesskey-2.0.3.tar.gz;
2) 解压此文件后,找到nginx-accesskey-2.0.3下的config文件。编辑此文件:替换其中的”$HTTP_ACCESSKEY_MODULE”为”ngx_http_accesskey_module”;
3) 用一下参数重新编译nginx:
./configure –add-module=path/to/nginx-accesskey
4) 修改nginx的conf文件,添加以下几行:
location /download {
accesskey on;
accesskey_hashmethod md5;
accesskey_arg “key”;
accesskey_signature “mypass$remote_addr”;
}
其中:
accesskey为模块开关;
accesskey_hashmethod为加密方式MD5或者SHA-1;
accesskey_arg为url中的关键字参数;
accesskey_signature为加密值,此处为mypass和访问IP构成的字符串。
访问测试脚本download.php:
<?
$ipkey= md5(“mypass”.$_SERVER[‘REMOTE_ADDR’]);
$output_add_key=”<a href=http://www.egtch.com/download/G3200507120520LM.rar?key=”.$ipkey.”>download_add_key</a><br />”;
$output_org_url=”<a href=http://www.egtch.com/download/G3200507120520LM.rar>download_org_path</a><br />”;
echo $output_add_key;
echo $output_org_url;
?>
访问第一个download_add_key链接可以正常下载,第二个链接download_org_path会返回403 Forbidden错误。

4、总结
从以上3个方法来看,Nginx简单的防盗链技术也是很简单,不过高深一点的就属最后一种方法了,如果大家有兴趣可以研究研究最后一种方法,这种方法比较安全,不易被破解!

* 本文为Mr. Tao原创文章,转载请注明文章出处及作者 *

发表评论 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

分类

近期文章

  • cordova-plugin-camera在某些android机型中拍照或选择文件时闪退出错的解决办法 2019年10月24日
  • JavaScript nodeJS base64加密解密url参数 2019年10月15日
  • 利用expressJS编写reset api 2019年4月13日
  • angular4 + http拦截器 2019年3月21日
  • ionic navCtrl.pop如何传递参数给上一个页面 2018年11月16日
  • ionic3搭建开发/测试环境 2018年10月25日
  • ionic2、3双击硬件back按键退出应用 2018年10月24日
  • VMware安装Mac OS High Sierra 10.12及高版本无法全屏 2018年8月24日

近期评论

  • 手表资讯发表在《ReactJS环境搭建》
  • king2088发表在《ionic中使用热更新插件cordova-hot-code-push》
  • 重阳节的诗句发表在《常用的sql语句》
  • 新郎致辞发表在《PHP代码实现WordPress相关文章的几种方法》
  • 霸道总裁发表在《vsftpd 提示 unrecognized service 解决办法》

归档

标签

Ajax Android Angular APP Cordova CSS css3 express html5 ionic Java javascript jQuery Linux loading mac Mac OS mongodb MySQL node nodejs PHP react SQL SSH VirtualBox vue vue-cli win10 WordPress WP REST API 主题 兼容性 前端 备份 插件 数据库 数组 服务器 正则表达式 浏览器 热更新 目录 组件 错误
2023年 4月
一 二 三 四 五 六 日
 12
3456789
10111213141516
17181920212223
24252627282930
« 10月    
© 2023 小小前端 | Powered by Superbs Personal Blog theme