配置Nginx实现图片防盗链并排除对搜索引擎的屏蔽

有时候我们不希望自己网站的图片被别的网站调用,因为这会消耗我们服务器大量的带宽,把服务器拖慢,我们可以用图片防盗链技术来达到我们的目的。

于对nginx服务器,我们使用ngx_http_referer_module模块来实现上述需求。

nginx referer指令简介

nginx模块ngx_http_referer_module通常用于阻止对“Referer”(来源)头字段中具有无效值的请求访问站点.我们应该牢记,有些合法的请求是不会带referer来源头部的,所以有时候不要拒绝来源头部(referer)为空的请求.

一.nginx配置如下:

这段要放到nginx站点配置文件最上面的部分:

剩余内容需要付费后查看,请点击支付

这样您在浏览器直接输入图片地址就不会再显示图片出来了,也不可能会再右键另存什么的。

以上完美测试通过。

 

三:注意事项

1)请确保server段中只有一个location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$(比如还有另外的一个针对expires过期时间的这样的location配置,那么必须要将其和防盗链的location整合到一起),否则可能导致代码无效,如有这个代码段请合并或删除。
2)切记:如果要跳转到图片,记得替换的图片地址要使用没有防盗链的网站图片,否则由于替换的图片其实也处于防盗链情况下,会造成仍旧无法显示设置的图片。

3)我们一般不要删除none blocked字段实现彻底防盗链,因为这样让人们不能直接输入url打开图片,比如在QQ里分享图片地址,用户点击就打不开了,影响用户体验。

4)如果不生效,请使用新版本的Nginx.

原创文章,转载请注明:来自Lenix的博客,地址http://blog.p2hp.com/archives/5872

最后更新于 2019年4月3日

最新配置Nginx实现图片防盗链并排除对搜索引擎的屏蔽教程
标签: