nginx配置图片防盗链
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 403; } }
expires : 图片的客户端浏览器的缓存时间。
access_log : 不记录访问日志。
valid_referers : 指定有效的referers,nginx防盗链是根据http头中的referer来判断的。
none : 无referer头,即是直接访问图片的url,可以选择禁止。
blocked : 指定允许访问的域名,支持域名前缀通配符*。
if : 无效的referer返回防盗链图片,或者403。
注意问题:
如果对全站执行防盗链,要把配置加到HTTP{}部分,如果对单独域名就放到server{}部分。
返回防盗链图片的域名(上例中的invalid.com),需要没有限制防盗链规则,否则不能正常返回图片,我一开始就晕了,lee.com配置了防盗链,还用lee.com返回防盗链图片,怎么也显示不出来。