Nginx案例之防盗链
Nginx生产案例之防盗链
1.简介
场景:
当图片大量被其它网站链接,这是非常消耗流量的。
原理:
根据referers头来判断,如果是从自己网站上访问的,将显示。
但referers很容易就可以伪造,并且如果是爬虫来下载图片,也无法防御,因为爬虫是从网站路径下载的。
2.配置
在server板块中添加一个location
server {
listen 80;
server_name localhost;
location ~ .*\.(gif|jpg|jpeg|png|bm|swf|flv|rar|zip|gz|bz2)$ { # 指定需要使用防盗链的媒体资源
access_log off; # 不记录日志
expires 15d; # 设置缓存时间
valid_referers *.baidu.com *.google.com; # 表示仅允许这些域名访问上面的媒体资源
if ($invalid_referer) { # 如果域名不是上面指定的地址就返回403
return 403;
}
}
所有来自百度,谷歌的访问将正常。而来自别的网站链接过来的,将显示一个403,也可以重定向到别的页面。

浙公网安备 33010602011771号