Nginx如何防盗链?

在nginx代理服务器中,或者nginx应用服务器中添加以下代码:

location ~ *\.(wma|wmv|asf|mp3|mp4|mmf|zip|rar|jpg|gif|png|swf|flv)$ {

valid_referers none blocked  www.zhangxianwei.com www.baidu.com http://www.google.cn;
if ($invalid_referer) {
      rewrite ^/ /404.jpg;
      #return  自己网站的域名;
  }
}

这段配置的意思是nginx会通过查看referer字段和valid_referers后面的referer列表进行匹配,如果匹配到了就invalid_referer字段值为0,就代表我允许你浏览这个图片,就不把你跳转成404了。如果你从别的网站来访问的我这张图片,而我在valid_referers后面没有写上你的域名,就将invalid_referers设置为1,然后就转条下面的动作。
PS:if中的$invalid_referer为1才执行下面的动作,为0不执行,别搞混。
“valid_referers"的语法:
valid_referers [none|blocked|server_names] …
默认值:none
环境:server,location
none:表示无Referer值的情况。
blocked:表示Referer值被防火墙进行伪装。
server_names:表示一个或多个主机名称。从Nginx 0.5.33版本开始,server_names中可以使用通配符”*"号。

发布了48 篇原创文章 · 获赞 1 · 访问量 1481

猜你喜欢

转载自blog.csdn.net/weixin_43876317/article/details/102761821