文章目錄
- 前言:
- 一、Apache的壓縮模塊
- (一)、網頁壓縮
- (二)、網頁gzip概述
- (三)、Apache的壓縮模塊
- (四)、啟用網頁壓縮功能步驟
- (五)、Apache的壓縮模塊配置命令
- 二、網頁快取
- (一)、配置網頁的快取時間概述
- (二)、啟用網頁的快取功能步驟
- (三)、網頁快取優化配置命令
- 三、安全優化(防盜鏈)
- (一)、防盜鏈概述
- (二)、防盜鏈步驟與命令
- 四、隱藏版本資訊
- (一)、配置Apache隱藏版本資訊的必要性
- (二)、隱藏版本資訊步驟與命令
前言:
我們在使用Apache 作為Web服務器的程序中,只有對 APache 服務器進行適當的優化配置,才能讓 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-deflate \ #加入mod_deflate 模塊
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
make -j 2 && make install #編譯安裝
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目錄下
ls
bbs index.html index.html.bak index.php photo.jpg #photo.jpg是我上傳的圖片
vim /usr/local/httpd/htdocs/index.html
<html><body><h1>
What Does The Bee Do?What does the bee do?Bring home honey.And what does Father do?Bring home money.And what does Mother do?Lay out the money.And what does baby do?Eat up the honey.by C. G. Rossetti, 1830-1894
<img src="photo.jpg"/>
</body></html>
systemctl restart httpd.service
方法一:
在LInux系統中,打開火狐瀏覽器,右擊點查看元素
選擇 網路 ----> 選擇 HTML、WS、其他
訪問 http://192.168.200.50,多次重繪后查看回應頭中包含 Content-Encoding; gzip
方法二:
在windows10 系統中依次安裝 fiddler 軟體,打開 fiddler軟體
選擇 inspectors -----> 選擇 Headers
瀏覽器訪問 http://192.168.200.50 ,多次重繪后查看 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++ make pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-expires \ #加入mod_ expires 模塊
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
make -j 2 && make install #編譯安裝
3、配置 mod_expires 模塊啟用
vim /usr/local/httpd/conf/httpd.conf
----52行修改------
Listen 192.168.200.50:80
----111行取消注釋-----
LoadModule expires_module modules/mod_expires.so #開啟mod_expires模塊
----199行取消注釋,修改------
ServerName www.gcc.com:80
-----末行添加---------
<IfModule mod_expires.c>
ExpiresActive On #打開網頁快取功能
ExpiresDefault "access plus 50 seconds" #設定快取60秒
</IfModule>
4、檢查安裝情況,啟動服務
apachectl -t #驗證組態檔的配置是否正確
Syntax OK #出現該欄位說明配置正確
apachectl -t -D DUMP_MODULES | grep "expires" #檢查mod_expires 模塊是否已安裝
expires_module (shared) #出現該行說明安裝成功
systemctl restart httpd.service
5、檢測快取是否生效
方法一:
在LInux系統中,打開火狐瀏覽器,右擊點查看元素
選擇 網路 ----> 選擇 HTML、WS、其他
訪問 http://192.168.200.50,多次重繪后查看回應頭中包含 Expires 項
方法二:
在windows10 系統中依次安裝 fiddler 軟體,打開 fiddler軟體
選擇 inspectors -----> 選擇 Headers
瀏覽器訪問 http://192.168.200.50 ,多次重繪后查看 Expires 項


三、安全優化(防盜鏈)
(一)、防盜鏈概述
- 防盜鏈就是防止別人的網站代碼里面盜用服務器的圖片,檔案,視頻等相關資源
- 如果別人盜用網站的這些靜態資源,明顯的是會增大服務器的帶寬壓力
- 作為網站的維護人員,要杜絕我們服務器的靜態資源被其他網站盜用
(二)、防盜鏈步驟與命令
為了測驗防盜鏈是否設定成功,我們這里將使用兩臺虛擬機,一臺作為盜鏈主機7-1,一臺作為設定防盜鏈的主機7-5,
設定盜鏈主機7-1
yum install -y httpd
vim /var/www/html/index.html
<html><body><h1>IT WORKS!</h1>
<img src="http://192.168.200.50/photo.jpg"/>
</body></html>
echo "192.168.200.10 www.accp.com" >> /etc/hosts
echo "192.168.200.50 www.gcc.com" >> /etc/hosts
systemctl restart httpd
設定完成后就可以通過訪問 http://www.accp.com 獲取到盜鏈的www.gcc.com 的圖片了,

那么為了防止被盜取鏈接,此時我們就可以在服務器7-5上設定防盜鏈配置了,
1、檢查是否安裝 mod_ rewrite 模塊
apachectl -t -D DUMP_MODULES | grep "rewrite"
2、如果沒有安裝mod_ rewrite 模塊,重新編譯安裝Apache 添加mod_ rewrite 模塊
systemctl stop httpd.service #先將httpd服務關閉
cd /usr/local/httpd/conf #將舊的組態檔移除或者改名
mv httpd.conf httpd.conf.bak2
yum -y install gcc gcc-c++ make pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-expires \
--enable-so \
--enable-rewrite \ #加入mod_ rewrite 模塊
--enable-charset-lite \
--enable-cgi
make -j 2 && make install #編譯安裝
3、配置 mod_ rewrite 模塊啟用
需提前在/usr/local/httpd/htdocs 中上傳盜鏈警告的圖片

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://gcc.com/.*$ [NC] #設定匹配規則
RewriteCond %{HTTP_REFERER} !^http://gcc.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.gcc.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.gcc.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.gcc.com/error.png #設定跳轉動作
RewriteCond %{HTTP_REFERER} !^http://www.gcc.com/.*$ [NC]的欄位含義:
“%{HTTP_REFERER}":存放一個鏈接的URL,表示從哪個鏈接訪問所需的網頁,
“!^”:表示不以后面的字串開頭,
"http://www.gcc.com”:是本網站的路徑,按整個字串匹配,
".*$":表示以任意字符結尾,
“[NC]”:表示不區分大小寫字母,
RewriteRule .*\.(gif | jpg | swf)$ http://www.gcc.com/error.png的欄位含義:
"."表示匹配一個字符,
"*"表示匹配0到多個字符,與“.” 合起來的意思是匹配0到多次前面的任意字符,如果是1到多次匹配可以用“+”表示,
"\.":在這里的“\”是轉義符,“\.”就代表符號“.”的意思,因為“."在指令中是屬于規則字符,有相應的含義,
如果需要匹配,需要在前面加個轉義符“\”,其它規則字符如果需要匹配,也做同樣處理,
“(gif | jpg | swf)" :表示匹配"gif”、“jpg”、“swf"任意 一個,“$”表示結束,最后的規則是以“.gif"、 “.jpg”、“.swf"結尾,前而是1到多個字符的字串,也就是匹配圖片型別的檔案,
"http://www.gcc.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/246133.html
標籤:其他
上一篇:VLAN原理與配置(一)
