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返回防盗链图片,怎么也显示不出来。

posted @ 2014-12-12 15:04  leezhxing  阅读(477)  评论(0编辑  收藏  举报