防盗链就是防止别人的网站代码里面盗用服务器的图片文件、视频等相关资源.若是别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力.因此做为网站的维护人员,要杜绝咱们服务器的静态资源被其余网站盗用.
%{HTTP_ REFERER}:浏览header中的连接字段,存放一一个链
接的URL,表明是从哪一个连接访问所需的网页
!^:不之后面的字符串开头
.*$: 以任意字符结尾
NC:不区分大写
R:强制跳转php
RewriteEngine On:打开网页重写功能
RewriteCond:设置匹配规则(条件)
RewriteRule:设置跳转动做(操做)html
若是相应变量的值匹配所设置的规则,则逐条往下处理;若是不匹配,则日后的规则再也不匹配mysql
一台linux虚拟机做为源网站服务器,(IP:192.168.235.158/域名:www.bdqn.com) 一台win7 x64虚拟机做为测试客户机 一台win7 -2虚拟机做为盗链网站服务器(192.168.235.143)
1.安装服务linux
[root@localhost ~]# yum install bind -y
2.配置DNS主配置文件c++
[root@localhost ~]# vim /etc/named.conf //编辑主配置文件 options { listen-on port 53 { any; }; //将括号内127.0.0.1替换为any ... //省略部分不作修改 allow-query { any; }; //将括号内localhost替换为any
3. 配置DNS区域配置文件web
[root@localhost ~]# vim /etc/named.rfc1912.zones //编辑区域配置文件 zone "bdqn.com" IN { //指定域名 type master; file "bdqn.com.zone"; //指定域名的区域数据文件 allow-update { none; }; };
4.配置DNS区域数据配置文件sql
[root@localhost ~]# cd /var/named/ //切换目录 [root@localhost named]# cp -p named.localhost bdqn.com.zone //保留权限复制区域数据文件模板 [root@localhost named]# vim bdqn.com.zone //编辑区域数据文件 $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 www IN A 192.168.235.158 //删除末行的内容,输入www IN A 192.168.235.158 此段内容,地址为本地Linux的IP地址
5.开启DNS服务apache
[root@localhost named]# systemctl start named [root@localhost named]# systemctl stop firewalld.service [root@localhost named]# setenforce 0
1.远程共享获取LAMP工具包vim
[root@localhost named]# smbclient -L //192.168.56.1 //查看由Windows共享的内容 Sharename Type Comment --------- ---- ------- LAMP Disk [root@localhost named]# mkdir /abc //建立目录 [root@localhost named]# mount.cifs //192.168.56.1/LAMP /abc //远程挂载工具包到建立的目录 [root@localhost named]# cd /abc //切换至目录查看 [root@localhost abc]# ls apr-1.6.2.tar.gz game.jpg apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 awstats-7.6.tar.gz install_lamp.sh cronolog-1.6.2-14.el7.x86_64.rpm mysql-5.6.26.tar.gz Discuz_X2.5_SC_UTF8.zip php-5.6.11.tar.bz2 error.png
2.解压工具包的源码文件,并 windows
//解压源码文件 [root@localhost abc]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/ ... [root@localhost abc]# tar zxvf apr-1.6.2.tar.gz -C /opt/ ... [root@localhost abc]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/ ... //查看/opt目录下解压后的组件包 [root@localhost abc]# ls /opt apr-1.6.2 apr-util-1.6.0 httpd-2.4.29 rh //移动组件包到Apache服务的srclib目录中 [root@localhost abc]# cd /opt [root@localhost opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr [root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
3.安装编译语言环境,并configure配置Apache功能模块
[root@localhost opt]# cd httpd-2.4.29/ [root@localhost httpd-2.4.29]# yum install gcc gcc-c++ pcre pcre-devel zlib-devel expat-devel -y //安装语言环境 [root@localhost httpd-2.4.29]# ./configure \ > --prefix=/usr/local/httpd \ > --enable-deflate \ > --enable-so \ > --enable-rewrite \ > --enable-charset-lite \ > --enable-cgi //配置相关功能模块
4.编译及编译安装
[root@localhost httpd-2.4.29]# make //编译 ... [root@localhost httpd-2.4.29]# make install //编译安装 ...
5.开启Apache主配置文件中的相关模块
[root@localhost httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf //编辑Apache主配置文件 198 ServerName www.bdqn.com:80 //删除文件的第198行前的#号注释,并将网址替换成以前建立的域名www.bdqn.com 51 Listen 192.168.235.158:80 //删除文件的第51行前的#号注释,并将监听地址替换为本地Linux的IP地址 52 #Listen 80 //在第52行前加上#来注释掉IPv6的监听 156 LoadModule rewrite_module modules/mod_rewrite.so //删除文件的第156行前的#号注释,开启重写功能模块
6.建立首页页并放入图片
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/bin/ //切换至Apache服务的/bin目录中 [root@localhost bin]# vim /usr/local/httpd/htdocs/index.html //编辑首页文件 <html><body><h1>It works!</h1> <img src="game.jpg"/> //将图片放入标签中 </body></html> [root@localhost bin]# cp /abc/game.jpg /usr/local/httpd/htdocs/ //将先前挂载目录中的图片复制到站点目录下
7.开启Apache服务
[root@localhost bin]# ./apachectl start //使用Apache自带的脚本开启服务
1.打开一台Win 7 x64测试主机,变动DNS服务器地址为本地Linux的IP地址
2.打开浏览器输入域名www.bdqn.com便可访问网页
3.查看网页属性,以获取图片的URL地址
右击图片,点击属性便可查看到该图片的URL地址为http://www.bdqn.com/game.jpg
1.开启一台Win 7-2主机,搭建网站
控制面板—程序—程序和功能—打开和关闭windows功能—选择Internet信息服务
2.使用txt文档编写网页内容,并更改文档名为index.html
txt文档内容:
<html> <head></head> <body> <h1>this is test web</h1> <img src="http://www.bdqn.com/game.jpg"/> </body> </html>
3.将index.html文件放入C:\inetpub\wwwroot的站点中
使用Win 7 x64测试主机访问Win 7-2(IP:192.168.235.143),就能够访问到网页,可是这是个盗链网站,访问此站点的同时既盗取了他人源网站的资源,有奖流量导回了源网站,从而形成了他人服务器的负载
1.修改Apache的配置文件
[root@localhost bin]# vim /usr/local/httpd/conf/httpd.conf 248 Require all granted //在第248行下追加如下6行内容,用以防止其余网站盗链.一旦截取到盗链图片信息,便会跳出错误图片 249 RewriteEngine On 250 RewriteCond %{HTTP_REFERER} !^http://bdqn.com/.*$ [NC] 251 RewriteCond %{HTTP_REFERER} !^http://bdqn.com$ [NC] 252 RewriteCond %{HTTP_REFERER} !^http://www.bdqn.com/.*$ [NC] 253 RewriteCond %{HTTP_REFERER} !^http://www.bdqn.com/$ [NC] 254 RewriteRule .*\.(gif|jpg|swf)$ http://www.bdqn.com/error.png
2.将报错图片放入站点目录
[root@localhost bin]# cp /abc/error.png /usr/local/httpd/htdocs/ [root@localhost bin]# ls /usr/local/httpd/htdocs/ error.png game.jpg index.html
3.从新开启服务
[root@localhost bin]# ./apachectl stop [root@localhost bin]# ./apachectl start
使用Win 7 x64测试主机再次访问Win 7-2(IP:192.168.235.143)的网页,便会跳出另一张图片,防盗链配置成功!