Nginx防盗链配置实例——从盗链模拟到防盗链设置流程细解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx防盗链配置实例——从盗链模拟到防盗链设置流程细解相关的知识,希望对你有一定的参考价值。
nginx防盗链设置? 对于图片来说,A网站,如果想使用B网站的图片,可以直接写上B网站图片的链接地址,或者将B网站的图片通过右键另存为的方式下载到本地,然后在页面上使用。如果B网站不想A网站这么干了,那么B网站可以采取防盗链的措施来干这个工作,结果就是,A网站想请求所需要的资源,通过url的方式,获取的可能不是原来的图片了,出现404或者别的图片替代了。如果通过浏览器直接打开图片url,那么仍然有可能显示404,这就是防盗链。
? 下面我们先进行盗链的操作过程:就是如何做盗链网站——盗取别人(其他服务器)的图片
? 环境部署准备:一台手工编译完好的nginx服务器(Centos7)、一台做盗链的win10虚拟机、一台用作测试的win10-1主机
1.nginx服务器上的nginx服务为开启状态
[root@localhost nginx-1.12.2]# netstat -natp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18676/nginx: master
2.nginx服务器上的站点目录下有0.jpg图片并且将其相对路径写入到index.html文件中
[root@localhost html]# ls
0.jpg 50x.html index.html
[root@localhost html]# vim index.html
[root@localhost html]# sed -n ‘15p‘ index.html
<img src="0.jpg"/>
3.nginx服务器上配置域名解析:参考博客:nginx虚拟主机配置第一个步骤,然后在本地火狐浏览器中验证
[root@localhost html]# netstat -natp | grep named
tcp 0 0 192.168.68.145:53 0.0.0.0:* LISTEN 72573/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 72573/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 72573/named
tcp6 0 0 ::1:53 :::* LISTEN 72573/named
tcp6 0 0 ::1:953 :::* LISTEN 72573/named
4.win10和win10-1虚拟机上都将网络dns域名服务器地址设置为nginx服务器的ip地址并且在命令行验证是否正常解析
5.在做盗链的win10虚拟机上进行如下配置:
以上就是模拟盗链配置的过程了。
开始验证盗链是否设置成功
在win10上先进行测试:输入域名也可以
win10的IP地址:
win10-1上进行测试
以上就是盗链配置的操作过程啦!
盗链是可耻的,因为这相当于是"Borrow the chicken to make the egg"了,不仅盗取别人的资源,还占用别人的服务器带宽,从而使自己获益。
因此我们需要对此进行防护,也就是进行防盗链设置,具体操作过程如下:
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
[root@localhost html]# sed -n ‘56,61p‘ /usr/local/nginx/conf/nginx.conf
location ~*.(jpg|gif|swf)$ {
valid_referers none blocked *.lokott.com lokott.com;
if ($invalid_referer ) {
rewrite ^/ http://www.lokott.com/error.png;
}
}
[root@localhost html]# ls
0.jpg 50x.html error.png index.html
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
[root@localhost html]# sed -n ‘56,61p‘ /usr/local/nginx/conf/nginx.conf
location ~*.(jpg|gif|swf)$ {
valid_referers none blocked *.lokott.com lokott.com;
if ($invalid_referer ) {
rewrite ^/ http://www.lokott.com/error.png;
}
}
[root@localhost html]# vim /etc/init.d/nginx //编写nginx控制脚本
[root@localhost html]# cat /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
[root@localhost html]# service nginx stop
[root@localhost html]# service nginx start
在原本的盗链虚拟机win10上进行测试:
这样我们就完成了防盗链的配置
小结
? 我们通过三台虚拟机进行盗链的配置的操作过程,然后进行防盗链的配置——在主配置文件中添加控制语句来阻止其他主机的盗链行为,从而优化自己的服务器,也使自己的服务器更加安全。
以上是关于Nginx防盗链配置实例——从盗链模拟到防盗链设置流程细解的主要内容,如果未能解决你的问题,请参考以下文章