文章目錄
- 一、Apache的壓縮模塊
- (一)、網頁壓縮
- (二)、網頁gzip概述
- (三)、Apache的壓縮模塊
- (四)、啟動網頁壓縮功能的步驟
- (五)、Apache的網頁壓縮配置命令
- 二、網頁快取
- (一)、配置網頁快取時間概述
- (二)、啟用網頁的快取功能步驟
- (三)、網頁快取優化配置命令
- 三、Apache防盜鏈
- (一)、防盜鏈概述
- (二)、防盜鏈步驟及命令
- 四、隱藏版本資訊
一、Apache的壓縮模塊
(一)、網頁壓縮
1、網頁優化概述
在企業中,部署Apache后會有默認的配置引數,如果不及時進行優化配置,在當今互聯網時代,會引發網站很多問題,
為了適應企業需求,就需要考慮如何提升Apache的性能與穩定性,這就是Apache的優化內容
2、優化內容
- 配置網頁壓縮功能
- 作業模式的選擇與引數優化
- 配置隱藏版本號
- 配置防盜鏈
…
(二)、網頁gzip概述
配置Apache的網頁壓縮功能,是使用gzip壓縮演算法來對網頁內容進行壓縮后在傳輸到客戶端瀏覽器
1、作用
- 降低了網路傳輸的位元組數,加快網頁加載的速度
- 節省流量,改善用戶的瀏覽體驗
- gzip與搜索引擎的抓取作業有著更好的關系
(三)、Apache的壓縮模塊
1、Apache實作網頁壓縮的功能模塊包括
- mod_gzip模塊
- mod_deflate模塊
2、Apache 1.x
- 沒有內建網頁壓縮技術,但是可以使用第三方mod_gzip模塊執行壓縮
3、Apache 2.x
- 在開發的時候,內建了mod_deflate這個模塊,取代mod_gzip
4、mod_gzip模塊與mod_deflate模塊
- 兩者均使用gzip壓縮演算法,運作原理類似
- mod_deflate壓縮速度略快,而mod_gzip的壓縮比略高
- mod_gzip對服務器CPU占用要高一些
- 高流量的服務器,使用mod_deflate可能會比mod_gzip加載速度更快
(四)、啟動網頁壓縮功能的步驟
1、查看是否安裝mod_deflate模塊
2、修改組態檔,啟用壓縮功能
3、訪問測驗
(五)、Apache的網頁壓縮配置命令
1、將之前Apache的舊的組態檔進行移除或者改名
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak1

2、檢查是否安裝 mod_deflate 模塊
apachectl -t -D DUMP_MODULES | grep "deflate"
3、如果沒有安裝mod_deflate模塊,重新編譯安裝 Apache 添加mod_deflate 模塊
#需要先將服務關閉
systemctl stop httpd.service
#使用該命令查看是否關閉成功
systemctl status httpd.service
yum -y install gcc gcc-c++ make 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 #加入mod_deflate 模塊
make -j 2 && make install #編譯安裝
2是2核
4、配置 mod_deflate 模塊 啟用
vim /usr/local/httpd/conf/httpd.conf
-----52行修改------
Listen 192.168.200.50:80
----105行取消注釋----
LoadModule deflate_module modules/mod_deflate.so
----197行取消注釋,修改------
ServerName www.gcc.com:80
-----末行添加-------
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png #代表什么型別的內容啟用gzip壓縮
DeflateCompressionLevel 9 #代表壓縮級別,范圍為1-9
SetOutputFilter DEFLATE #代表啟用 deflate 模塊對本站點的輸出進行gzip壓縮
</IfModule>

5、檢查安裝情況,啟動服務
apachectl -t #驗證組態檔的配置是否正確
apachectl -t -D DUMP_MODULES | grep "deflate" #檢查是否安裝 mod_deflate 模塊
deflate_module (shared) #出現該段,說明安裝模塊成功

6、添加網頁內容,進行后續的測驗
cd /usr/local/httpd/htdocs
#將自己想要測驗的圖片上傳到該/htdocs目錄下
vim /usr/local/httpd/htdocs/index.html
<html><body><h1>IU!IU!IU!</h1>
<img src='ceshitupian.png'/>
</body></html>
systemctl restart httpd.service


方法一:
在LInux系統中,打開火狐瀏覽器,右擊點查看元素
選擇 網路 ----> 選擇 HTML、WS、其他
訪問 http://192.168.182.11,多次重繪后查看回應頭中包含 Content-Encoding; gzip


方法二:
在windows10 系統中依次安裝 fiddler 軟體,打開 fiddler軟體
選擇 inspectors -----> 選擇 Headers
瀏覽器訪問 http://192.168.182.11 ,多次重繪后查看 Content-Encoding; gzip
二、網頁快取
(一)、配置網頁快取時間概述
- 通過mod_expire模塊配置Apache,使網頁能在客戶端瀏覽器快取一段時間,以避免重復請求
- 啟用mod_expire模塊后,會自動生成頁面頭部資訊中的Expires標簽和Cache-Control標簽,從而降 低客戶端的訪問頻率和次數,達到減少不必要的流量和增加訪問速度的目的
(二)、啟用網頁的快取功能步驟
1、查看是否安裝mod_expire模塊
2、修改組態檔啟用快取功能
3、訪問測驗
(三)、網頁快取優化配置命令
1、檢查是否安裝 mod_ expires 模塊
apachectl -t -D DUMP_MODULES | grep "expires"
2、如果沒有安裝mod_ expires 模塊,重新編譯安裝Apache 添加mod_ expires 模塊
systemctl stop httpd.service #關閉httpd服務
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 \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires #加入mod_expires 模塊
make && make install
3、配置 mod_expires 模塊啟用
vim /usr/local/httpd/conf/httpd.conf
----52行修改------
Listen 192.168.182.11:80
----111行取消注釋-----
LoadModule expires_module modules/mod_expires.so #開啟mod_expires模塊
----199行取消注釋,修改------
ServerName www.panrj.com:80
-----末行添加---------
<IfModule mod_expires.c>
ExpiresActive On #打開網頁快取功能
ExpiresDefault "access plus 50 seconds" #設定快取50秒
</IfModule>



4、檢查安裝情況,啟動服務
apachectl -t #驗證組態檔的配置是否正確
Syntax OK #出現該欄位說明配置正確
apachectl -t -D DUMP_MODULES | grep "expires" #檢查mod_expires 模塊是否已安裝
expires_module (shared) #出現該行說明安裝成功
systemctl restart httpd.service
5、檢測快取是否生效
cat /usr/local/httpd/htdocs/index.html

方法一:
在LInux系統中,打開火狐瀏覽器,右擊點查看元素
選擇 網路 ----> 選擇 HTML、WS、其他
訪問 http://192.168.182.11,多次重繪后查看回應頭中包含 Expires 項
方法二:
在windows10 系統中依次安裝 fiddler 軟體,打開 fiddler軟體
選擇 inspectors -----> 選擇 Headers
瀏覽器訪問 http://192.168.182.11 ,多次重繪后查看 Expires 項

三、Apache防盜鏈
(一)、防盜鏈概述
- 防盜鏈就是防止別人的網站代碼里面盜用服務器的圖片,檔案,視頻等相關資源
- 如果別人盜用網站的這些靜態資源,明顯的是會增大服務器的帶寬壓力
- 作為網站的維護人員,要杜絕我們服務器的靜態資源被其他網站盜用
1、盜鏈程序
這邊需要在準備一臺主機,作為盜鏈機
yum install -y httpd
vim /var/www/html/index.html
<html><body><h1>IT WORKS!</h1>
<img src="http://192.168.182.11/ceshiwenjian.png"/>
</body></html>
echo "192.168.182.11 www.panrj.com" >> /etc/hosts
echo "192.168.182.22 www.zhouyuzhu.com" >> /etc/hosts
systemctl restart httpd

然后就可以通過www.zhouyuzhu.com盜鏈到www.panrj.com的圖片了,

為了防止這種情況發生,我們需要在服務器上設定防盜鏈配置
(二)、防盜鏈步驟及命令
1、檢查是否安裝 mod_ rewrite 模塊
apachectl -t -D DUMP_MODULES | grep "rewrite"
2、如果沒有安裝mod_rewrite 模塊,重新編譯安裝 Apache 添加 mod_rewrite模塊
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
3、配置mod_rewrite模塊啟用
需提前在/usr/local/httpd/htdocs 中上傳盜鏈警告的圖片

vim /usr/local/httpd/conf/httpd.conf
vim /usr/local/httpd/conf/httpd.conf
----157行取消注釋------
LoadModule rewrite_module modules/mod_rewrite.so
----249行下面添加-----
RewriteEngine On #打開 rewrite 功能,加入 mod_ rewrite 模塊內容
RewriteCond %{HTTP_REFERER} !^http://panrj.com/.*$ [NC] #設定匹配規則
RewriteCond %{HTTP_REFERER} !^http://panrj.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.panrj.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.panrj.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.panrj.com/error.png #設定跳轉動作
RewriteCond %{HTTP_REFERER} !^http://www.panrj.com/.*$ [NC]的欄位含義:
“%{HTTP_REFERER}":存放一個鏈接的URL,表示從哪個鏈接訪問所需的網頁,
“!^”:表示不以后面的字串開頭,
"http://www.panrj.com”:是本網站的路徑,按整個字串匹配,
".*$":表示以任意字符結尾,
“[NC]”:表示不區分大小寫字母,
RewriteRule .*\.(gif | jpg | swf)$ http://www.panrj.com/error.png的欄位含義:
"."表示匹配一個字符,
"*"表示匹配0到多個字符,與“.” 合起來的意思是匹配0到多次前面的任意字符,如果是1到多次匹配可以用“+”表示,
"\.":在這里的“\”是轉義符,“\.”就代表符號“.”的意思,因為“."在指令中是屬于規則字符,有相應的含義,
如果需要匹配,需要在前面加個轉義符“\”,其它規則字符如果需要匹配,也做同樣處理,
“(gif | jpg | swf)" :表示匹配"gif”、“jpg”、“swf"任意 一個,“$”表示結束,最后的規則是以“.gif"、 “.jpg”、“.swf"結尾,前而是1到多個字符的字串,也就是匹配圖片型別的檔案,
"http://www.panrj.com/error.png”:表示轉發到這個路徑,
整個配置的含義是使用本網站以外的網站域名訪問本站的圖片檔案時,顯示error.png 這個圖片,


systemctl restart httpd.service #重啟服務
此時如果再次使用盜鏈域名進行訪問的話,就會出現預先設定的警告的圖片,

四、隱藏版本資訊
(一)、配置Apache隱藏版本資訊的必要性
- Apache的版本資訊,透露了一定的漏洞資訊,從而給網站帶來安全隱患
- 生產環境中要配置Apache隱藏版本資訊
- 可使用Fiddler抓包工具分析
(二)、隱藏版本資訊步驟與命令
vim /usr/local/httpd/conf/httpd.conf
----491行取消注釋-------
Include conf/extra/httpd-default.conf
vim /usr/local/httpd/conf/extra/httpd-default.conf
-----55行,將原本的 Full 改為 Prod,只顯示名稱,沒有版本-------
ServerTokens Prod
#ServerTokens 表示 Server 回送給客戶端的回應頭域是否包含關于服務器 OS 型別和編譯過的模塊描述資訊,
systemctl restart httpd.service
此時就不會出現Apache的版本資訊了

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/256721.html
標籤:其他
下一篇:OSPF雙點雙規與雙歸屬實驗
