Nginx防盗链

盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。

首先模拟环境
server1:172.25.80.1为被盗链的服务器,上面有要盗的图片
server2: 172.25.80.2为要访问的盗链服务器

1.模拟盗链

1.server2作为web服务器盗链server1的资源

[[email protected] nginx]# vim conf/nginx.conf
116     server {
117         listen       80;
118         server_name  daolian.westos.com;
119         charset utf-8;
120         location / {
121                 root /web;
122                 index index.html;
123         }
124 }  
[[email protected] nginx]# sbin/nginx -s reload
[[email protected] nginx]# mkdir /web 
[[email protected] nginx]# vim /web/index.html
<html>

<body>
<br>盗链图片</br>
<img src="http://bbs.westos.com/vim.jpg">

</body>

Nginx防盗链
Nginx防盗链

2.在server1上创建被盗链的资源:

[[email protected] nginx]# vim conf/nginx.conf
137     server {
138         listen 80;
139         server_name bbs.westos.com;
140 
141         location / {
142                 root    /bbs;
143                 index   index.html;
144         }
145     }
[[email protected] nginx]# sbin/nginx -s reload
[[email protected] nginx]# cp /usr/local/nginx/html/search/vim.jpg /bbs/
[[email protected] nginx]# ls /bbs/
index.html  vim.jpg

Nginx防盗链
测试资源
Nginx防盗链

3.测试

在客户端浏览器输入daolian.westos.com,直接访问到server1的图片,完成盗链。
Nginx防盗链

2.防止盗链

在server1上进行配置可以防止盗链,当访问bbs.redhat.org域名下gif,jpg,png,hpeg格式的图片时,返回一个403定向。

[[email protected] nginx]# vim conf/nginx.conf
137     server {
138         listen 80;
139         server_name bbs.westos.com;
140 
141         location / {
142                 root    /bbs;
143                 index   index.html;
144         }
145 
146         location ~* \.(gif|jpg|png|jpeg)$ {
147                 root    /bbs;
148                 valid_referers none block bbs.westos.com;		##如果访问的是bbs.westos.com时,不做禁止
149                 if ($invalid_referer) {
150                         return 403;		##如果不是我允许的域名访问时会返回403。这里也可以设置重定向到虚拟主机的资源。
151                 }
152 
153         }
154     }
[[email protected] nginx]# sbin/nginx -s reload

这样就无法盗链图片了。
Nginx防盗链
而当直接访问bbs.westos.com/vim.jpg时是没有问题的

Nginx防盗链