nginx配置图片防盗链

时间:2022-02-12 14:52:34
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${
expires 30d;
access_log off;
valid_referers none blocked *.lee.com *.xing.com ;
if ($invalid_referer){
rewrite ^/ http://invalid.com/images/invalid.png;
     #return ;
}
}

expires : 图片的客户端浏览器的缓存时间。

access_log : 不记录访问日志。

valid_referers : 指定有效的referers,nginx防盗链是根据http头中的referer来判断的。

none : 无referer头,即是直接访问图片的url,可以选择禁止。

blocked : 指定允许访问的域名,支持域名前缀通配符*。

if :  无效的referer返回防盗链图片,或者403。

注意问题:

如果对全站执行防盗链,要把配置加到HTTP{}部分,如果对单独域名就放到server{}部分。

返回防盗链图片的域名(上例中的invalid.com),需要没有限制防盗链规则,否则不能正常返回图片,我一开始就晕了,lee.com配置了防盗链,还用lee.com返回防盗链图片,怎么也显示不出来。