首頁 > 軟體

Apache網頁的優化、安全與防盜鏈圖文詳解

2022-10-10 14:01:55

1. Apache 網頁的壓縮

 在企業中,部署Apache後只採用預設的設定引數,會引發網站很多問題,換言之預設設定是針對以前較低的伺服器設定的,以前的設定已經不適用當今網際網路時代。

為了適應企業需求,就需要考慮如何提升Apache的效能與穩定性,這就是Apache優化的內容。

1.1 檢查壓縮模組

apachectl -t -D DUMP_MODULES | grep "deflate"

1.2   安裝mod_deflate 模組

 如果沒有安裝mod_deflate 模組,重新編譯安裝 Apache 新增 mod_deflate 模組

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak
 
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure 
--prefix=/usr/local/httpd 
--enable-so 
--enable-rewrite 
--enable-charset-lite 
--enable-cgi 
--enable-deflate			
make && make install

1.3 設定 mod_deflate 模組啟用

vim /usr/local/httpd/conf/httpd.conf

  --52行--修改

 --105行--取消註釋

 --197行--取消註釋,修改

 --末行新增--

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
</IfModule>

1.4 檢查安裝情況,啟動服務

[root@www htdocs]#apachectl -t
Syntax OK
[root@www htdocs]#apachectl -t -D DUMP_MODULES | grep "deflate"
 deflate_module (shared)
[root@www htdocs]#systemctl start httpd

1.5 測試 mod_deflate 壓縮是否生效

編輯測試網頁: 

cd /usr/local/httpd/htdocs
vim index.html
<html><body><h1>It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!</h1>
<img src="game.jpg"/>
</body></html>

測試:

方式一:

在Linux系統中,開啟火狐瀏覽器,右擊點檢視元素

選擇 網路 ---> 選擇 HTML、WS、其他 

存取 http://192.168.80.10 ,雙擊200響應訊息檢視響應頭中包含 Content-Encoding: gzip

方法二:

在Windows系統中依次安裝 Microsoft.NET4 和fiddler 軟體,開啟fiddler 軟體

選擇 inspectors ---> 選擇 Headers

瀏覽器存取 http://192.168.80.10 ,雙擊200響應訊息檢視是否存在 Content-Encoding: gzip 

2. Apache的網頁快取處理

減少網路延遲,加快頁面開啟速度--快取比源伺服器離使用者端更近,因此,從快取請求內容比從源伺服器所用時間更少,快取的使用能夠明顯加快頁面開啟速度,達到更好的體驗。

降低伺服器的壓力--給網路資源設定有效期之後,使用者可以重複使用原生的快取,減少對源伺服器的請求,間接降低伺服器的壓力。同時,搜尋引擎的爬蟲機器人也能根據過期機制降低爬取的頻率,也能有效降低伺服器的壓力。

減少網路頻寬損耗--無論對於網站運營者或者使用者,頻寬都代表著金錢,當Web快取副本被使用時,只會產生極小的網路流量,可以有效的降低運營成本。
 

2.1 檢查是否安裝快取模組

apachectl -t -D DUMP_MODULES | grep "expires"

2.2 重新編譯安裝,新增快取模組 

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak1
 
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure 
--prefix=/usr/local/httpd 
--enable-so 
--enable-rewrite 
--enable-charset-lite 
--enable-cgi 
--enable-deflate 
--enable-expires			
make && make install

2.3 進行快取模組的設定 

vim /usr/local/httpd/conf/httpd.conf

 52行和199行的監聽繼續取消註釋,進行相關修改

 --111行--取消註釋

 --末行新增--

<IfModule mod_expires.c>
   ExpiresActive On                                                              
   ExpiresDefault "access plus 60 seconds"               
</IfModule>

2.4 驗證模組的安裝,重啟服務

[root@www httpd-2.4.29]#apachectl -t
[root@www httpd-2.4.29]#apachectl -t -D DUMP_MODULES | grep "expires"
[root@www httpd-2.4.29]#systemctl restart httpd

2.5 修改測試網頁,進行存取測試

[root@www httpd-2.4.29]#cd /usr/local/httpd/htdocs

vim index.html 
<html>
<body>
<h1>
this is a game
</h1>
<img src="games.jpg"/>
</body>
</html>

 存取測試:

3.隱藏Apache的版本資訊

 如果我們開啟了Apache服務,那麼他人就可以通過F12找到你的Apache版本號,從而利用一些已知的漏洞或者零day漏洞來進行攻擊,這是非常危險的。所以為了減少一點――哪怕是一點點的風險,我們最好選擇隱藏Apache的版本資訊。

3.1 修改httpd的主設定 

vim /usr/local/httpd/conf/httpd.conf

 --491行--取消註釋

vim /usr/local/httpd/conf/extra/httpd-default.conf

 --55行--修改

 重啟服務,測試存取:

如果頁面資訊沒有重新整理成功。可以嘗試先清空歷史記錄中的所有資訊,再進行存取

4.Apache 防盜鏈

 網際網路時代,網站最為關心的問題就是使用者存取量。而吸參照戶的往往就是新穎的標題,圖片及其內容,而承載著這些,需要佔用伺服器的資源。而有些缺德企業會將自己網站中圖片重定向到你的網站上,讀取你的圖片,佔用著你的頻寬,伺服器資源,但存取量卻被它所佔據。

所以apache防盜鏈的設定很有必要。

盜鏈實驗展示

本實驗中我準備了兩臺虛擬機器器,一臺是原始碼編譯安裝apche服務的主機,作為被盜鏈的主機,域名設定為www.test.com      另一臺為yum安裝apache服務的主機,作為盜鏈的主機,域名設定為www.test1.com

(1) 盜鏈主機存取被盜鏈主機,竊取圖片網路路徑 

(2)盜鏈主機設定自己的網站 圖片資源

(3)盜取後的存取測試

注意:本次測試存取的是盜鏈的主機,探究圖片的來源 

防盜鏈措施演示 

(1)主配設定的修改

 因為本機原始碼編譯時,已經下載了相關模組,所以直接修改設定。如果沒有下載相關的模組,還要進行下載設定。

下載設定方法:

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak2
 
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure 
--prefix=/usr/local/httpd 
--enable-so 
--enable-rewrite 					#加入mod_rewrite 模組
--enable-charset-lite 
--enable-cgi 
--enable-deflate 
--enable-expires
 
make && make install

修改主設定:

vim /usr/local/httpd/conf/httpd.conf

--157行--取消註釋 

 --224行--進行設定新增

RewriteCond %{HTTP_REFERER} !^http://www.test.com/.*$ [NC]  的欄位含義:

  • “%{HTTP_REFERER}” :存放一個連結的 URL,表示從哪個連結中轉存取目錄下的靜態資源。
  • “!^” :表示不以後面的字串開頭。
  • “http://www.test.com” :是本網站的路徑,按整個字串匹配。
  • “.*$” :表示以任意字元結尾。

“[NC]” :表示不區分大小寫字母。

RewriteRule .*.(gif|jpg|swf)$ http://www.test.com/error.png  的欄位含義:

  • “.” :表示匹配一個字元。
  • “*” :表示匹配 0 到多個字元,與“.”合起來的意思是匹配 0 到多次前面的任意字元,如果是 1 到多次匹配可以用“+”表示。
  • “.” :在這裡的“”是跳脫符,“.”就代表符號“.”的意思。因為“.”在指令中是屬於規則字元,有相應的含義, 如果需要匹配,需要在前面加個跳脫符“”,其它規則字元如果需要匹配,也做同樣處理。
  • “(gif|jpg|swf)” :表示匹配“gif”、“jpg”、“swf”任意一個,“$”表示結束。最後的規則是以“.gif”、“.jpg”、“.swf”結尾, 前面是1到多個字元的字串,也就是匹配圖片型別的檔案。
  • “http://www.test.com/error.png” :表示轉發到這個路徑 。

(2)準備一張提示盜鏈者的圖片,放入網頁根目錄中

(3) 存取展示 

 存取被盜鏈主機網頁:

 存取盜鏈主機網頁:

總結

到此這篇關於Apache網頁的優化、安全與防盜鏈的文章就介紹到這了,更多相關Apache網頁優化 安全與防盜鏈內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com