修改Nginx网站的配置
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|mp4)$ {
root /www/html/;
expires 24h;
access_log off;
valid_referers none blocked *.abc.com 192.168.1.55;
if ($invalid_referer) {
return 403;
}
}
解析
\.(gif|jpg|jpeg|png|bmp|swf|mp4)
这是启用防盗链的文件扩展名root /www/html/;
文件转发目录expires 24h;
在客户浏览器缓存24小时,如果是天,可以用expires 30d;
access_log off;
不写入日志文件中valid_referers none blocked *.abc.com 192.168.1.55;
允许访问的域名站点或IP,如果多个地址用空格隔开,支持域名泛解析- `if ($invalid_referer) {
return 403; }`
除了允许直接访问的域名外,其他域名直接返回403,也可以直接返回一个指定的网址
rewrite ^/ http://abc.com/ima/a.jpg;
遗留问题
如上配置,有一图片地址为
http://a.abc.com/a.jpg
,如果有一有def.com
网站解析到abc.com
时无法防问,但是,如果直接引用http://a.abc.com/a.jpg
是可以访问的