切记,替换的图片地址要使用没有防盗链的网站图片,否则由于替换的图片其实也处于防盗链情况下,会造成仍旧无法显示设置的图片。

一、全站图片防盗链

在/usr/local/nginx/conf/nginx.conf文件要添加防盗链的server段里添加下面的代码:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
valid_referers none blocked *.ipple.net *.abc.com;
if ($invalid_referer)
{
rewrite ^/ http://www.otherdomin.com/403.jpg;
#return 403;
}
}

测试一下配置是否OK
# /usr/local/nginx/sbin/nginx -t
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

然后执行如下命令重启lnmp即可:注:这里用的是lnmp的自动安装包里的shell,你如果是原生安装的请用原来的办法重启就可以了。

# /root/lnmp restart

说明:
1、请将代码中的*.ipple.net *.abc.com等换成你自己的域名。
2、请确保server段中只有一个location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$,否则可能导致代码无效。

如果有下面这段代码,请将其删除或者与上面的代码合并成一段:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
再次重启lnmp,你会发现,防盗链设置已经生效了。

二:针对图片目录防止盗链

location /images/
{
alias /data/images/;
valid_referers none blocked server_names *.ipple.net ipple.net ;
if ($invalid_referer)
{
return 403;
}
}

三:使用第三方模块HttpAccessKeyModule实现Nginx防盗链

实现方法如下:
1. 下载NginxHttpAccessKeyModule模块文件:Nginx-accesskey-2.0.3.tar.gz;http://wiki.nginx.org/File: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.domain.com/download/G3200507120520LM.rar?key=”.$ipkey.”>download_add_key</a><br />”;
$output_org_url=”<a href=http://www.domain.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错误。

防盗链Nginx设置图片防盗链相关推荐

  1. Nginx设置图片防盗链(白名单与黑名单)

    点击蓝字关注这个神奇的公众号- 某些时候可能您会发现,别人网站直接将您的网站图片拿过去使用,导致额外消耗服务器流量和带宽,如果本身服务器带宽和流量就比较小,被人盗链后势必会造成一定影响.这篇文章分享下 ...

  2. PHP 实现图片防盗链,Nginx实现图片防盗链功能

    很多时候在浏览网页的时候,尤其是图片来自QQ空间之类的,会遇到某些文件(图片等)无法访问的情况,这是因为图片的所有方做了防盗链机制 了解防盗链之前先了解下http referer这个属性,http r ...

  3. 【Nginx】Nginx实现图片防盗链

    目录 Nginx有三种方法可以进行防盗链 1.对Nginx下所有项目的指定资源不同文件类型进行防盗链 2.对指定目录或者指定项目目录进行防盗链 3.nginx 的第三方模块ngx_http_acces ...

  4. php 防止倒链,PHP防止图片倒链

    标签:倒链 原帖地址:http://blog.csdn.net/xueling022/article/details/53053383 1.Apache服务器下防止图片盗链的办法 如果你的网站以图片为 ...

  5. nginx配置图片防盗链

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;access_log off;valid_referers none blocked *. ...

  6. nginx设置图片跨域访问

    生而为人 谁不付出 谁不努力 #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log ...

  7. WordPress 图片防盗链的方法

    现在写博,为了达到图文并茂.增加视觉效果,往往都会把一些图片放在文章里面,这样一来,就涉及到三个方面的问题,一个是存储空间,二是流量,三是 访问及加载速度.随着国内带宽的不断升级,访问及加载已不是什么 ...

  8. WordPress图片防盗链的几种方法

    一般来说,博客圈内的主机每个月流量限制差不多为15G到25G(我说的是一般).如果你的博客每个月流量输出特别多的话,那么说明你的博客人气很不错,或者是使用了大量内链图片或Mp3.不过也不排除你的图片或 ...

  9. 宝塔php防盗链,宝塔面板开启防盗链的方法详细教程

    为了节省建站成本,大多数站长都会选择一些小服务器,在另加CDN.云存储之类的来减轻服务器的压力,但是这类功能大多收费. 如果自己网站的图片都让别人复制图片链接地址,那么自己CDN流量就跑得贼快,花了钱 ...

最新文章

  1. lightoj 1014
  2. [转] apache2: bad user name ${APACHE_RUN_USER}
  3. 戴尔服务器r210显示3,Dell服务器R210
  4. 剑指offer 04:重构二叉树
  5. 全球及中国回流冷凝管行业发展前景整体预测及十四五发展趋向展望报告2022-2027年版
  6. PolarDB-X 2.0 全局 Binlog 和备份恢复能力解读
  7. 褚时健:现在的年轻人太急了,我快90了还在摸爬滚打
  8. oracle中rownum和row_number()的区别
  9. docker 安装mysql_Docker安装MySQL完整版流程
  10. Oracle RMAN 学习
  11. 拳王公社:网络引流的“4大核心秘诀“,让客户源源不断地加你
  12. 在Word 2007中轻松插入或创建表格
  13. Tomcat配置多个端口号或多个应用
  14. Servlet — 线程安全问题
  15. 空悬指针和野指针(Dangling pointer and wild pointer)
  16. Java实现DFA算法敏感词过滤
  17. SpringBoot配置文件实现数据库连接
  18. 百度 李彦宏 2008年在北大毕业典礼的演讲稿
  19. html flash mp3播放器,网页实用最简单的flash mp3播放器代码-多样式
  20. 众为兴SCARA四轴机械臂编程(一)——基于ModbusTCP协议

热门文章

  1. Hybris 入门介绍
  2. Sequelize 使用教程
  3. linux去除快捷方式箭头,强迫症:Win10完美去除快捷方式小箭头的方法
  4. 真正的程序员为什么想要创造出伟大的作品
  5. eMatrix高级顾问-惠普上海职位需求
  6. [转载]怀孕必读(非常实用)-怀胎的历程及注意事项
  7. scratch开发环境搭建与打包exe
  8. 逻辑与(),逻辑或(||),and(),or(|)
  9. rsync安装和使用
  10. php反射类 ReflectionClass