Apache網頁優化之壓縮與緩存

Apache網頁優化概述

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

gzip介紹

■配置Apache的網頁壓縮功能,是使用gzip壓縮算法來
對網頁內容進行壓縮後再傳輸到客戶端瀏覽器
■作用
●降低了網絡傳輸的字節數,加快網頁加載的速度
●節省流量,改善用戶的瀏覽體驗
●gzip與搜索引擎的抓取工具有着更好的關係

Apache實現網頁壓縮的功能模塊包括

mod_gzip 模塊
moddeflate模塊
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加載速
度更快

配置網頁壓縮功能

首先檢查是否安裝了mod_deflate模塊
●執行apachectl -t -D DUMP_MODULES命令
●如果輸出中沒有deflate_module (static),說明編譯時沒有安裝
mod_deflate模塊
若沒有安裝則要重新編譯安裝
●./configure --enable-deflate...
●make && make install

■在配置httpd.conf中配置開啓gzip功能
●AddOutputFilterByType DEFLATE texthtml text/plain text/css
text/xml text/javascript
●DeflateCompressionL evel
●SetOutputFilter DEFL ATE
■第一行代表對什麼樣的內容啓用gzip壓縮
■第二行代表壓縮級別
■第三行代表啓用deflate模塊對本站點的輸出進行gzip壓縮

Apache壓縮實操

安裝Apache服務

遠程掛載軟件包文件夾到本地並查看

[root@localhost ~]# mkdir /abc                                       //創建掛載點
[root@localhost ~]# mount.cifs //192.168.100.7/LAMP-C7 /abc/         //掛載
Password for root@//192.168.100.10/LAMP-C7:  
[root@localhost ~]# cd /abc/
[root@localhost abc]# ls
apr-1.6.2.tar.gz       cronolog-1.6.2-14.el7.x86_64.rpm  LAMP-php5.6.txt
apr-util-1.6.0.tar.gz  Discuz_X2.5_SC_UTF8.zip           mysql-5.6.26.tar.gz
awstats-7.6.tar.gz     httpd-2.4.29.tar.bz2              php-5.6.11.tar.bz2

解壓源碼包到/opt目錄下,並移動httpd組件包

[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/
[root@localhost abc]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/
[root@localhost abc]# cd /opt/
[root@localhost opt]# ls
apr-1.6.2  apr-util-1.6.0  httpd-2.4.29  httpd.txt  rh
[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

安裝實驗環境必須的軟件包

yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
zlib-devel \
expat-devel \
pcre \
perl   

配置安裝目錄及模塊

[root@lamp opt]#cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-deflate \
--enable-expires \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

編譯安裝Apache

make && make install

修改Apache配置文件

[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
[root@localhost conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@localhost conf]# vim httpd.conf 
[root@localhost conf]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
[root@localhost conf]# vim /etc/httpd.conf 
/deflate搜索關鍵詞查找關鍵詞所在行    
LoadModule deflate_module modules/mod_deflate.so        //去除註釋開啓服務
/headers搜索關鍵詞查找關鍵詞所在行
LoadModule headers_module modules/mod_headers.so        //去除註釋開啓服務
/filter搜索關鍵詞查找關鍵詞所在行
LoadModule filter_module modules/mod_filter.so          //去除註釋開啓服務
使用/Listen查找關鍵詞所在位置
註釋ipv6,開啓ipv4並將監聽端口改爲本機地址
Listen 192.168.131.129:80
#Listen 80
使用/ServerName查找關鍵詞,並做如下修改
ServerName www.kgc.com:80

在文件末行插入以下內容
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/ipg text/png
  DeflateCompressionLevel 9
  SetOutputFilter DEFLATE
</IfModule>
[root@localhost conf]# /usr/local/httpd/bin/apachectl -t
Syntax OK
//驗證語法是否正確

[root@localhost bin]# ./apachectl start       //啓動服務
[root@localhost bin]# netstat -ntap | grep 80
tcp        0      0 192.168.35.131:80       0.0.0.0:*               LISTEN      35887/httpd
[root@localhost bin]# systemctl stop firewalld.service    //關閉防火牆
[root@localhost bin]# setenforce 0        //關閉增強型安全功能
[root@localhost bin]# ./apachectl -t -D DUMP_mooules | grep "expire"
Syntax OK

使用測試機win10進行測試,在瀏覽器輸入網址192.168.131.129即可訪問到主頁
在這裏插入圖片描述最後打開fiddre軟件進行抓包

共享文件夾中的圖片複製到網頁文件目錄下,並將圖片添加到網頁中

[root@localhost bin]# cd /abc/
[root@localhost LAMP]# ls
apr-1.6.2.tar.gz                  fangdao.jpg
apr-util-1.6.0.tar.gz             httpd-2.4.29.tar.bz2
awstats-7.6.tar.gz                tupian.png
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
[root@localhost LAMP]# cp lf.jpg /usr/local/httpd/htdocs/        //把圖片複製到網頁文件夾
[root@localhost LAMP]# cd /usr/local/httpd/
[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
index.html  tupian.png
[root@localhost htdocs]# vim index.html 
<html><body><h1>It works!</h1>
<img src="tupian.png"/>
</body></html>

現在我們再次使用測試機進行訪問就可以看到添加的圖片,我們通過抓包軟件可以看到有圖片的抓取信息中有在端口處進行gzip壓縮處理信息
在這裏插入圖片描述

配置網頁的緩存時間

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

■修改httpd.conf配置文件
●啓用mod expires模塊,並設置http協議下任意格式的文檔均60
秒後過期
<lfModule mod
expires.c\>
ExpiresActive On
ExpiresDefault "access plus 60 seconds"
</lfModule\>
■重啓httpd服務

Apache緩存實操

在配置完Apache網頁壓縮在前提下再進行如下配置

配置Apache配置文件

[root@localhost htdocs]# vim /etc/httpd.conf
在配置文件末行插入以下內容
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 50 seconds"
</IfModule>

檢查語法正確性並重啓服務

[root@localhost htdocs]# pwd
/usr/local/httpd/htdocs
[root@localhost htdocs]# cd /usr/local/httpd/
[root@localhost httpd]# cd bin/
[root@localhost bin]# ./apachectl -t        //檢查語法
Syntax OK
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start

我們在用測試機win10裏的瀏覽器進行抓包測試,此時我們可以看到我們設置的網頁緩存的時間在頭部信息中出現
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章