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地址

在這裏插入圖片描述

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)的網頁,便會跳出另外一張圖片,防盜鏈配置成功!在這裏插入圖片描述

--------------------------------------------感謝閱讀 --------------------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章