Apache網頁與安全優化——網頁壓縮及緩存(理論實踐相結合!)

Apache網頁優化概述

  • 在企業中,部署Apache後只採用默認的配置參數,會引起網站不少問題,換言之默認配置是針對之前較低的服務器配置的,之前的配置已經不適用當今互聯網時代
  • 爲了適應企業需求,就須要考慮如何提高Apache的性能與穩定性,這就是Apache優化內容

優化內容

配置網頁壓縮功能
工做模式的選擇與參數優化
配置防盜鏈
配置隱藏版本號

gzip介紹

配置Apache的網頁壓縮功能,是使用gzip壓縮算法來對網頁進行壓縮後再傳輸到客戶端瀏覽器

做用

下降了網絡傳輸的字節數,加快網頁加載的速度
節省流量,改善用戶的瀏覽體驗
gzip與搜索引擎的抓取工具備着更好的關係

Apache的壓縮模塊

Apache實現網頁壓縮的功能模塊包括
        mod_gzip模塊
        mod_deflate模塊
Apache 1.x
        沒有內建網頁壓縮技術,但可以使用第三方mod_gzip模塊執行壓縮
Apache 2.x
        在開發的時候,內建了mod_deflate這個模塊,取代mod_gzip

mod_gzip模塊與mod_deflate模塊比較

*   二者均使用gzip壓縮算法,運做原理相似
*   mod_deflate壓縮速度略快,而mod_gzip的壓縮比略高
*   mod_gzip對服務器CPU的佔用要高一些
*   高流量的服務器,使用mod_deflate可能會比mod_gzip加載速度更快

啓用網頁壓縮功能步驟

Apache網頁與安全優化——網頁壓縮及緩存(理論實踐相結合!)

環境(網頁壓縮實例)

一臺Linux服務器(192.168.13.128)
一臺win10測試機

1,遠程共享掛載到Linux上

1)在Windows上將LAMP所需壓縮軟件包共享出來(此處若有問題請看以前的博客相關文章)

Apache網頁與安全優化——網頁壓縮及緩存(理論實踐相結合!)

2)在Linux上使用遠程共享獲取文件並掛載到/abc目錄下

[root@localhost httpd]# mkdir /abc   ##建立掛載點/abc
root@lamp ~]# smbclient -L //192.168.100.3/
                Sharename       Type      Comment
                ---------       ----      -------
                LAMP-C7         Disk      

[root@lamp ~]# mount.cifs //192.168.100.3/LAMP-C7 /mnt  
##遠程掛載軟件包到/mnt目錄

2,手工編譯安裝Apache

1)將源碼包解壓到/opt目錄下

[root@lamp mnt]# cd /mnt   ##切換到/mnt目錄下
[root@lamp mnt]# tar zxvf apr-1.6.2.tar.gz -C /opt/    ##解壓源碼包到/opt下
...
[root@lamp mnt]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/
....
[root@lampt mnt]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/
...
[root@lamp mnt]# cd /opt                        //進入/opt目錄      
[root@lamp opt]# ls                             //查看解壓的文件
apr-1.6.2  apr-util-1.6.0  httpd-2.4.29  rh

2)將apr組件包移動到http中並安裝編譯工具

[root@lamp opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr          
[root@lamp opt]#  mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
[root@localhost opt]# yum -y install \
gcc \                                       //c語言
gcc-c++ \                        //c++語言
make \                              //編譯工具
pcre-devel \                     //pcre語言工具
expat-devel \                   //識別標籤性語言工具
perl \
pcre \
zlib-devel                       //數據壓縮用的函式庫

3)配置安裝目錄及各類模塊

[root@lamp opt]# cd /opt/httpd-2.4.29/
[root@lamp httpd-2.4.29]#./configure \                      //配置
--prefix=/usr/local/httpd \   
--enable-deflate \  //配置壓縮模塊
--enable-expires \  //配置緩存模塊(下一個緩存實驗須要)
--enable-so \      //apache核心模塊開啓
--enable-rewrite \    //開啓重寫功能,防盜鏈
--enable-charset-lite \  //支持字符集,簡體中文
--enable-cgi   //通用網關接口       
...

4)編譯和安裝

[root@lamp httpd-2.4.29]# make              //生成可執行的二進制文件
...
[root@lamp httpd-2.4.29]# make install  //複製二進制文件到系統,配置應用環境
...

5)配置http主配置文件

[root@localhost httpd-2.4.29]#  cd /usr/local/httpd/
[root@localhost httpd]# ls
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual
[root@localhost httpd]# cd conf/             ##切換到http主配置文件中
[root@localhost conf]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf   ##方便管理建立軟鏈接

##爲方便操做覆蓋原啓動腳本,並添加到service管理器中
[root@localhost conf]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd                       //複製apache啓動腳本覆蓋httpd原始的啓動腳本
[root@localhost conf]# vim /etc/init.d/httpd
#!/bin/sh
# chkconfig: 35 85 21
# description: Apache is a World Wide Web server            //在#!/bin/sh下行插入這兩行內容
[root@localhost conf]# chkconfig --add httpd         //將httpd加入到SERVICE管理器中

[root@localhost conf]# vim /etc/httpd.conf  ##配置主配置文件

Listen 192.168.13.128:80  ##設置監聽地址
#Listen 80

ServerName www.kgc.com:80  ##設置域名

LoadModule deflate_module modules/mod_deflate.so  ##啓用壓縮模塊
LoadModule headers_module modules/mod_headers.so   ##啓用頭部模塊

##大G到末行添加一下內容
LoadModule filter_module modules/mod_filter.so   
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml test/java
script text/jpg text/png    ##支持壓縮類型
    DeflateCompressionLevel 9   ##高壓縮比
    SetOutputFilter DEFLATE      ##默認過濾器加載
</IfModule>
[root@localhost conf]# service httpd start ##重啓服務
[root@localhost conf]# systemctl stop firewalld.service 
[root@localhost conf]# setenforce 0
[root@localhost conf]# cd /usr/local/httpd/bin/      ##查看deflate模塊啓動狀態
[root@localhost bin]# ./apachectl -t -D DUMP_MODULES | grep "deflate"
 deflate_module (shared)

6)切換到站點,編輯網頁內容

[root@localhost conf]# cd ..
[root@localhost httpd]# pwd
/usr/local/httpd
[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# cat index.html 
<html><body><h1>It works!</h1></body></html>

3,在win10中安裝fiddler抓包工具

Apache網頁與安全優化——網頁壓縮及緩存(理論實踐相結合!)

4,編輯網頁,添加一個圖片

1)切換到你的共享掛載點,將圖片複製到站點中

[root@localhost htdocs# cd /mnt   ##切換到掛載點
[root@localhost mnt]# cp kali.jpg /usr/local/httpd/htdocs/    ##將圖片複製到站點中
[root@localhost mnt]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls     ##查看圖片複製成功
index.html  kali.jpg

2)編輯站點的首頁內容

[root@localhost ~]# cd /usr/local/httpd/
[root@localhost httpd]# cd htdocs/      ##切換到站點
[root@localhost htdocs]# ls
index.html  kali.jpg  
[root@localhost htdocs]# vim index.html     ##編輯網頁內容,將圖片加入到網頁中

<html><body><h1>It works!</h1>
<img src="kali.jpg"/>         ##將圖片放到網頁中
</body></html>

5,測試網頁,查看抓包信息

Apache網頁與安全優化——網頁壓縮及緩存(理論實踐相結合!)
Apache網頁與安全優化——網頁壓縮及緩存(理論實踐相結合!)

配置網頁的緩存時間

  • 經過mod_expire模塊配置Apache,使用網頁能在客戶端瀏覽器緩存一段時間,以免重複請求
  • 啓用mod_expire模塊後,會自動生成頁面頭部信息中的Expires標籤和Cache-Control標籤,從而下降客戶端的訪問頻率和次數,達到減小沒必要要的流量和增長訪問速度的目的

啓用網頁緩存功能步驟

Apache網頁與安全優化——網頁壓縮及緩存(理論實踐相結合!)

環境

編譯安裝和前部分是同樣的,配置加上了緩存模塊,如下爲配置緩存模塊操做

1,配置主配置文件,開啓緩存模塊

[root@localhost httpd-2.4.29]# vim /etc/http.conf

LoadModule expires_module modules/mod_expires.so    ##開啓緩存模塊

<IfModule mod_expires.c>      ##大G末行添加配置文件
    ExpiresActive On
    ExpiresDefault "access plus 50 seconds"
</IfModule>

2,啓動Apachectl,關閉防火牆並重啓服務

[root@localhost httpd-2.4.29]# cd /usr/local/httpd/bin   ##測試語法是否有錯誤
[root@localhost bin]# ./apachectl -t   
[root@localhost bin]# ./apachectl start   ##開啓
[root@localhost bin]# systemctl stop firewalld.service    ##關閉防火牆
[root@localhost bin]# setenforce 0
[root@localhost bin]# ./apachectl -t -D DUMP_MODULES | grep "expires" ##查看模塊開啓狀態
 expires_module (shared)

3,從新用測試機訪問網頁,測試抓包

Apache網頁與安全優化——網頁壓縮及緩存(理論實踐相結合!)

謝謝閱讀!!!

相關文章
相關標籤/搜索