Nginx实现防盗链配置方法介绍
前言
有些朋友觉得防盗链就是防止图片,其实有很多东西要进行防盗链了,下面来介绍在nginx中实现防盗链配置方法:图片防盗链、下载资源等。
配置说明
格式:
1
2
3
4
5
6
7
8valid_referers none | blocked | server_names | strings ....;
--none:允许没有http_refer的请求访问资源,检测 Referer 头域不存在的情况,则可以访问。
--blocked:检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。这种情况该头域的值不以
“http://” 或 “https://” 开头。允许不是http://开头的,不带协议的请求访问资源。
--server_names :只允许指定ip/域名来的请求访问资源(白名单)。可设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某一个。在生产环境中尽量使用域名,不使用ip。举例
1
2
3
4
5# 自己域名 如果别的网站使用了你的文件,他的域名没配置在这里,他则无法访问这个文件
valid_referers none blocked zsyyblog.com;
if ($invalid_referer) {
return 404;
}
防盗链配置
假设网站域名是: zsyyblog.com
编辑nginx.conf,在 zsyyblog.com 区域添加如下内容:
1 | location ~* .(gif|png|jpg|bmp|swf|flv)$ { |
以上的例子可以实现扩展名为 gif,png,jpg,bmp,swf,flv的url防止被盗链。如果你需要其它的url防止被盗链,添加相应的后缀即可。
针对图片目录实行防盗链
1 | location /images/ { |
编辑完成之后,重新启动nginx以便配置生效。
小提示:nginx中
location ~
和location ~*
的区别:location ~*
不区分大小写,location ~
区分大小写。需要注意的是,这二段防盗链的配置要放在正确的server里,也就是要放在图片url所在的server_name里。其次,rewrite也要写正确,否则可能造成重复rewrite,可以用firefox的插件Firebug来查看。如果不想重写到某个url,可以直接返回403。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 竹山一叶!
评论