大佬教程收集整理的这篇文章主要介绍了Nginx图片防盗链,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
某网站的图片等资源只有指定一些站点或者IP可以访问,不允许其它站点访问。
打开Nginx.conf
,配置
LOCATIOn ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
valid_referers none blocked server_names test.com;
if ($invalid_referer){
return 403;
#rewrite ^/ https://www.baidu.com/img/bd_logo1.png;
}
expires 30d;
}
下面对这些配置进行解释。
LOCATIOn ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
此行配置的作用是匹配以 gif/jpg/jpeg/png/bmp/swf
结尾的文件请求。
LOCATIOn /image/
另外也可以通过这样的配置来匹配指定目录。
valid_referers none | blocked | server_names | 字符串
此行配置的作用是识别 referer
,即可以正常获取资源文件的@H_674_51@白名单域名。
参数说明:
referer
为空,也就是直接访问图片资源。比如在浏览器中直接访问图片http://www.test.com/test.png
时,请求的referer
会为空。referer
的值被代理或者防火墙删除了。referer
来源包含当前的server_names
,即LOCATIOn
的父节点server
节点的server_name
的值。test.com
,配置后,来源是test.com
的请求就会被认为是合法的请求。也可以使用正则表达式匹配合法请求来源, 如 ~\.test\.
。if ($invalid_referer){
return 403;
#rewrite ^/ https://www.baidu.com/img/bd_logo1.png;
}
如果请求匹配以上的条件, $invalid_referer
变量的值为0;如果不匹配, $invalid_referer
变量的值为1,则会执行 if ($invalid_referer){...}
中的代码块。
return 403;
表示http响应的状态码为 403
,该状态码表示 Forbidden
,即服务器禁止了该请求。
也可以使用 rewrite ^/ https://www.baidu.com/img/bd_logo1.png;
语句。使用该语句表示,当请求不匹配时,将请求重定向到 https://www.baidu.com/img/bd_logo1.png
,响应的HTPP状态码为 302
,该状态码表示 @H_996_21@moved Temporarily ,即临时重定向。
实现效果如下图所示:
2,该状态码表示@H_344_22@moved Temporarily` ,即临时重定向。
实现效果如下图所示:
以上是大佬教程为你收集整理的Nginx图片防盗链全部内容,希望文章能够帮你解决Nginx图片防盗链所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。