二.防盗链
1.简介:
防盗链基于客户端携带的referer实现,referer是记录打开一个页面之前记录是从哪个页面跳转过来的标记信息,如果别人只链接了自己网站图片或某个单独的资源,而不是打开了网站的整个页面,这就是盗链,referer就是之前的那个网站域名。
2. 正常的referer信息有以下几种:
-
none:#请求报文首部没有referer首部,比如用户直接在浏览器输入域名访问web网站,就没有referer信息。
-
blocked:#请求报文有referer首部,但无有效值,比如为空。
-
server_names:#referer首部中包含本主机名及即nginx 监听的server_name。
-
arbitrary_string:#自定义指定字符串,但可使用*作通配符。示例: .kgc.org www.kgc.
-
regular expression:#被指定的正则表达式模式匹配到的字符串,要使用
开头,例如:.*.kgc.com
示例:
实现盗链
在一机器上
vim /apps/nginx/conf.d/pc.conf
#添加内容
location ~* \.(jpg|gif|swf)$ {
root /data/nginx/html/pc;
valid_referers none blocked *.pc.com pc.com;
if ( $invalid_referer ) {
rewrite ^/ http://www.pc.com/error.png;
#return 403
}
}
cd /data/nginx/html/pc/
在此目录在放入 a.jpg 和 error.png
#用于测试的图片
第二台主机
#关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
yum install epel-release.noarch -y
yum install nginx -y
cd /usr/share/nginx/html
vim index.html
<html>
<body>
<h1>this is byyb </h1>
<img src="http://www.byyb.com/a.jpg"/>
</body>
</html>
#保存后启动服务
systemctl start nginx
#修改主配置文件
vim /etc/nginx/nginx.conf
#41行修改
server_name www.accp.com;
修改windows的本地hosts文件,添加映射关系
开始测试 防盗链是否配置成功