防盜鏈就是防止別人的網站代碼裏面盜用服務器的圖片文件、視頻等相關資源.若是別人盜用網站的這些靜態資源,明顯的是會增大服務器的帶寬壓力.因此做爲網站的維護人員,要杜絕咱們服務器的靜態資源被其餘網站盜用.
%{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)的網頁,便會跳出另一張圖片,防盜鏈配置成功!