Nginx基础配置之防盗链

实现的结果就是,只有指定的域名才能访问,除此之外全部拒绝访问,这样做就可以保证客户端访问自己的网站拿到自己的资源,而不是访问了别的网站拿到自己的资源

1.准备文件

创建出一个简单的html文件,找一个图片(这里是java小图标)
hello.html,路径是/usr/www/snowman/hello.html,内容是一句话加上引用图片

<html>
<body>
<p>noly snowman be allow</p>
<img src='logo.jpg' width="100px" height="100px" />
</body>
</html>

logo.jpg,路径是/usr/www/snowman/logo.jpg
在这里插入图片描述

2.配置 nginx.conf让资源可以被获取

在这里插入图片描述
注:这样配置后输入192.168.66.64/snowman/hello.html进行访问,hello.html文件通过第一个location获取,logo.jpg通过第二个location获取

3.用SwichHosts给IP绑定域名

在这里插入图片描述
这样设置之后,无论是访问www.snowman.cn还是www.abc.cn都是访问的192.168.66.64就是虚拟机
用两个域名(域名/snowman/hello.html)访问hello.html都可以成功获取文字和显示图片
www.snowman.cn
在这里插入图片描述
www.abc.cn
在这里插入图片描述
确定能正常访问后进行防盗链设置

4.增加防盗链设置

加入至指定location 即可实现

#防盗链
valid_referers none blocked www.snowman.cn;
if ($invalid_referer) {
return 403;
}

在这里插入图片描述
第一行代码的意思是允许改域名访问,if语句的意思是不合法的域名都返回403
(记得reload哦)
这样一来,www.snowman.cn/snowman/hello.html 依然可以成功看到文字和图片,因为www.snowman.cn是合法的
在这里插入图片描述
而www.abc.cn/snowman/hello.html 只能看到文字(hello.html)但图片加载不出来,因为访问hello.html走的location没有限制,访问图片的location中www.abc.cn是非法的
在这里插入图片描述

还是能加载出图片可能是因为缓存原因,刷掉就好了

猜你喜欢

转载自blog.csdn.net/snow____man/article/details/83544223
今日推荐