什么是盗链?
简单来说,盗链就是自己网站上的静态资源被他人获取,在他人编写网站引用静态资源时,将url写成你网站的地址
简单的盗链设置
准备工作
两台nginx服务器,编号为a,b
a服务器发布一个静态资源地址
image.png
b服务器发布一个盗链的html网页
<!DOCTYPE html>
<html long="en">
<head>
<meta charset="UTF-8">
<title>盗链页面</title>
</head>
<body>
<a href="http://106.15.201.9">盗链测试</a>
<img src="http://106.15.201.9/ylw.jpg">
</body>
</html>
浏览b服务器发布的网页,此时客户端请求图片资源时,从a服务器请求,消耗a服务器的资源
image.png
此时盗链成功
a服务器增加防盗链配置
server {
listen 80;
server_name 106.15.201.9;
root /nginx-test/daolian;
location ~ .*\.(png|jpg)$ {
# root /nginx-test/daolian;
valid_referers none blocked 8.8.8.8;
if ($invalid_referer) {
return 403;
}
}
}
重新查看b服务器网页(注意清除浏览器缓存)
image.png
防盗链配置讲解
valid_referers none blocked 8.8.8.8;
referers指来源头部信息
当从浏览器直接请求某个资源的时候,referers为空(即none) 当“Referer”来源头部不为空,但是里面的值被代理或者防火墙删除了,这些值都不以http://或者https://开头时,属于blocked
image.png
表示当referers为none,blocked或等于8.8.8.8的时候,允许请求改资源,否者返回403错误