1.http referer 是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上referer,告诉服务器是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理,

 

location /photos/ {
valid_referers  none blocked www.mydomain.com;
if ($invalid_referer) {
return 403;
}
}

Http  Referer 模块的功能:

valid_referers  :该指令会根据Referer header头的内容分配一个值0或1给变量$invalid_referer ,

如果referer header 头不符合valid_referers指令设置的有效referer,变量$invalid_referer将被设置为1;该指令的参数有:

none :默认值,表示没referer值的情况

blocked :表示referer值被防火墙伪装

server_names :表示一个活多个主机名称,从nginx0.5.33版本开始,server_names中可以使用通配符*

举例:

 

location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.ccvita.com www.phpq.net;
if ($invalid_referer) {
rewrite ^/ http://www.ccvita.com/403.html;
#return 404;
}
}

第一行:表示对以gif ,jpg等结尾的文件进行防盗链

第二行:表示对www.ccvita.com www.phpq.net这2个来路进行判断
if{}里面内容的意思是,如果来路不是指定来路就跳转到错误页面,当然直接返回404也是可以的