由于打算把图片放在自己的服务器上,所以配置防盗链也成了一个必须完成的任务。
在网上搜了一下,大致上是利用nginx检测http请求头中的referer参数来判断是否返回图片。
location / {
root html/img;
valid_referers none blocked *.example.com example.com ;
if ($invalid_referer) {
return 403;
break;
}
access_log off;
}
重点在第3行"vaild_referers"的设置。
根据nginx官方文档 的解释,"valid_referers"的几个参数实际上是几个条件。
"none"参数表示http header中没有referer,"blocked"表示http header中有referer但被防火墙或者代理服务器删除, 后面指定的域名表示在referer中匹配到相应的域名。只要满足以上任意一条,$invalid_referer变量则变为空字符串, 否则为1。 可以通过判断该变量的值来确定请求是否合法,达到防盗链的目的。