nginx防止盗链

防止盗链不仅能保护版权,又节约了不少流量。最近和bsdmap交流了下,听说他们通过防盗链节约了近1/3的图片流量。nginx的防盗链设置还是比较简单的,可以分为普通防盗链和ip/cookie based防盗链。其中ip based防盗链需要安装nginx的module,所以相对麻烦一些。
nginx最简单的防盗链设置如下

location ~* .(gif|jpg|png|swf|flv)$ {
    valid_referers none blocked www.dooda.net;
    if ($invalid_referer) {
        return 403;
    }
}
 

通过nginx的重定向方式返回403错误。

NginxHttpAccessKeyModule实现防盗链

需要先安装nginx的NginxHttpAccessKeyModule模块。其运行方式是:如我的nginx目录下有一个file.gz 的文件。对应的URI 是http://www.dooda.net/nginx/file.gz
若用ngx_http_accesskey_module 后则根据用户的IP生成一个key值,如下的链接来访问http://www.dooda.net/download /file.zip?key=23497sdf897. 只有给定的key值正确了,才能够下载nginx目录下的file.gz,这样就可以避免被盗链了。

转:http://my.oschina.net/jing31/blog/6606

作者: Shilf   发布时间: 2011-05-01