Apache网页优化 ---配置防盗链

防盗链概述

防盗链就是防止别人的网站代码里面盗用服务器的图片文件、视频等相关资源.如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力.所以作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用.

配置规则变量说明

%{HTTP_ REFERER}:浏览header中的链接字段,存放一一个链
接的URL,代表是从哪个链接访问所需的网页
!^:不以后面的字符串开头
.*$: 以任意字符结尾
NC:不区分大写
R:强制跳转


规则匹配说明

RewriteEngine On:打开网页重写功能
RewriteCond:设置匹配规则(条件)
RewriteRule:设置跳转动作(操作)


规则匹配

如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不匹配,则往后的规则不再匹配


实例演示

环境部署

一台linux虚拟机作为源网站服务器,(IP:192.168.235.158/域名:www.bdqn.com)
一台win7 x64虚拟机作为测试客户机
一台win7 -2虚拟机作为盗链网站服务器(192.168.235.143)

演示开始

第一步:安装并配置DNS服务

1.安装服务

[root@localhost ~]# yum install bind -y		

2.配置DNS主配置文件

[root@localhost ~]# vim /etc/named.conf 		//编辑主配置文件
options {
        listen-on port 53 { any; };			//将括号内127.0.0.1替换为any
        ...									//省略部分不做修改
        allow-query     { any; };			//将括号内localhost替换为any

3. 配置DNS区域配置文件

[root@localhost ~]# vim /etc/named.rfc1912.zones	//编辑区域配置文件
zone "bdqn.com" IN {								//指定域名	
        type master;        
        file "bdqn.com.zone";						//指定域名的区域数据文件
        allow-update { none; };
};     

4.配置DNS区域数据配置文件

[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服务

[root@localhost named]# systemctl start named
[root@localhost named]# systemctl stop firewalld.service 
[root@localhost named]# setenforce 0

第二步:编译安装Apache服务

1.远程共享获取LAMP工具包

[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.解压工具包的源码文件,并 **

//解压源码文件
[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地址

Apache网页优化 ---配置防盗链_第1张图片

2.打开浏览器输入域名www.bdqn.com即可访问网页

3.查看网页属性,以获取图片的URL地址
右击图片,点击属性即可查看到该图片的URL地址为http://www.bdqn.com/game.jpg
Apache网页优化 ---配置防盗链_第2张图片


第四步:创建并配置盗链网站

1.开启一台Win 7-2主机,搭建网站
控制面板—程序—程序和功能—打开和关闭windows功能—选择Internet信息服务
Apache网页优化 ---配置防盗链_第3张图片
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的站点中
Apache网页优化 ---配置防盗链_第4张图片


第五步:使用测试客户机查看盗链网站

使用Win 7 x64测试主机访问Win 7-2(IP:192.168.235.143),就可以访问到网页,但是这是个盗链网站,访问此站点的同时既盗取了他人源网站的资源,有奖流量导回了源网站,从而造成了他人服务器的负载
Apache网页优化 ---配置防盗链_第5张图片


第六步:配置防盗链

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)的网页,便会跳出另外一张图片,防盗链配置成功!

--------------------------------------------感谢阅读 --------------------------------------------

你可能感兴趣的:(Apache网页优化)