Nginx   发布时间:2022-05-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Nginx图片防盗链大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

文章目录

  • 防盗链概念
  • 通过Referer实现图片防盗链

防盗链概念

某网站的图片等资源只有指定一些站点或者IP可以访问,不允许其它站点访问。

通过Referer实现图片防盗链

打开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@白名单域名。

参数说明:

  • @H_674_51@none 表示请求的referer为空,也就是直接访问图片资源。比如在浏览器中直接访问图片http://www.test.com/test.png时,请求的referer会为空。
  • @H_674_51@blocked 表示referer的值被代理或者防火墙删除了。
  • @H_674_51@server_names 表示referer来源包含当前的server_names,即LOCATIOn的父节点server节点的server_name的值。
  • @H_674_51@字符串 表示合法域名。比如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图片防盗链全部内容,希望文章能够帮你解决Nginx图片防盗链所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: