nginx 防盗链的问题

天王盖地虎626 发布于 2014/06/12 21:54
阅读 789
收藏 1

五、防盗链
location ~* \.(gif|jpg|swf)$ {
valid_referers none blocked start.igrow.cn sta.igrow.cn;
if ($invalid_referer) {
rewrite ^/ http://$host/logo.png;

return 403
}
}
这些标红的地方

 valid_referers none blocked start.igrow.cn sta.igrow.cn;
这个表示什么意思?

变量$invalid_referer是nginx系统变量吗?

rewrite ^/ http://$host/logo.png;

这个表示什么意思?

 

加载中
0
红叔
红叔

valid_referers none blocked start.igrow.cn sta.igrow.cn; 
:允许引用链接的地址

rewrite ^/ http://$host/logo.png;

如果是$invalid_referer,即如果被盗链,那么将原来图片的路径重写(rewrite)为 http://$host/logo.png;这张图片,即显示这张图片。

ps:又来回答你提的问题了,缘分啊

0
huihuiyule
huihuiyule

http://www.ithov.com/linux/109590.shtml

一个 请求头的Referer字段

0
红叔
红叔

valid_referers

语法:valid_referers [none|blocked|server_names] … 
默认值:no 
使用字段:server, location 
这个指令在referer头的基础上为 $invalid_referer 变量赋值,其值为0或1。
可以使用这个指令来实现防盗链功能,如果valid_referers列表中没有Referer头的值, $invalid_referer将被设置为1(参照前例)。
参数可以使如下形式:

  • none意为不存在的Referer头
  • blocked意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。
  • server_names为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符。

变量$invalid_referer不是nginx的系统变量,是http协议中的。

0
天王盖地虎626
天王盖地虎626

引用来自“铂金小金”的评论

valid_referers

语法:valid_referers [none|blocked|server_names] … 
默认值:no 
使用字段:server, location 
这个指令在referer头的基础上为 $invalid_referer 变量赋值,其值为0或1。
可以使用这个指令来实现防盗链功能,如果valid_referers列表中没有Referer头的值, $invalid_referer将被设置为1(参照前例)。
参数可以使如下形式:

  • none意为不存在的Referer头
  • blocked意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。
  • server_names为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符。

变量$invalid_referer不是nginx的系统变量,是http协议中的。

能说的更加通俗点吗?

  • none意为不存在的Referer头
  • blocked意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。
  • server_names为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符。

不懂呢,最好举个列子哦,谢谢。

返回顶部
顶部