nginx防盗链设置
nginx有个模块叫做 ngx_http_referer_module,通过这个模块,可以很方便的做防盗链设置
一般常用的方法是在 server或者location段中加入
valid_referers none blocked www.mydomain.com mydomain.com;
详见下面的例子
其中 none 表示 空的来路,也就是直接访问,比如直接在浏览器打开一个图片
blocked 表示被防火墙标记过的来路
server_names 也就是域名了。0.5.33以后的版本中,可以用*.linuxzj.com来表示所有的二级域名
一。针对不同的文件类型
location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {
valid_referers none blocked *.linuxzj.com linuxzj.com;
if ($invalid_referer) {
#rewrite ^/ http://www.linuxzj.com/403.html;
return 403;
}
}
二。针对不同的目录
location /img/ {
root /data/img/;
valid_referers none blocked *.linuxzj.com linuxzj.com;
if ($invalid_referer) {
rewrite ^/ http://www.linuxzj.com/images/error.gif
#return 403;
}
}
三。以上是nginx自带的防盗链功能,另外还可以利用 nginx 的第三方模块 ngx_http_accesskey_module 来实现下载文件的防盗链,不做讨论。