Linux課程筆記 Apache常用模組的介紹

來源:互聯網
上載者:User

標籤:技術分享   ssi   script   有效期間   源檔案   bin   頻寬   生產環境   ash   

1. mod_expires模組介紹

1.1 mod_expires介紹

mod_expires允許通過apache設定檔控制HTTP的”Expires:”和”Cache-Control:”頭內容,這個模組控制伺服器應答時的Expires頭內容和Cache-Control頭的max-age指令。有效期間可以設定為相對於源檔案的最後修改時刻或用戶端的訪問時刻。

這些HTTP頭向用戶端表明了內容的有效性和持久性。如果用戶端本地有緩衝,則內容就可以從緩衝而不是從伺服器讀取。然後用戶端會檢查緩衝中的副本,看看是否到期或者是小,已決定是否從新從伺服器獲得內容更新。

 

1.2模組安裝方法

常規安裝方法:

(1) 編譯時間可加入如下參數:

--enable-expires

 

(2) mod_expires DSO安裝方法

cd /root/tools/httpd-2.2.25/modules/metadata   ç切到apache軟體目錄mod_expires程式下

#這個是解壓軟體包的路徑

/application/apache/bin/apxs -c -i -a mod_expires.c ç以dso的方式編譯到apache中

ll /application/apache2.2.25/modules/mod_expires.so ç檢查mod_expires

(3) mod_expires  DOS安裝出錯一例

 

 

注意:如果使用.config的方式編譯了mod_expires,又以DSO的方式安裝mod_expires模組,檢查apache的雨法會出現如下報錯提示:(可以在httpd.conf檔案中,注釋該模組)

[[email protected] metadata]# /application/apache/bin/apachectl -t

httpd: Syntax error on line 54 of /application/apache2.2.25/conf/httpd.conf: module expires_module is built-in and can‘t be loaded

 

1.3   mod_expires在apache中的應用

[[email protected] extra]# cat httpd-vhosts.conf---

NameVirtualHost *:80

NameVirtualHost *:8091

NameVirtualHost *:8092

 

#<VirtualHost *:80>

#DocumentRoot "/var/html/tmp"

#</VirtualHost>

 

<VirtualHost *:80>

    ServerAdmin [email protected]

    DocumentRoot "/var/html/blog"

    ServerName blog.etiantian.org

    ServerAlias etiantian.org

    ErrorLog "/app/logs/blog-error_log"

    #CustomLog "/app/logs/blog-access_log" common

    CustomLog "|/usr/local/sbin/cronolog /app/logs/access_blog_%w.log" combined

    ExpiresActive on

    ExpiresDefault "access plus 12 month"

    ExpiresByType text/html "access plus 12 months"

    ExpiresByType text/css "access plus 12 months"

    ExpiresByType image/gif "access plus 12 months"

    ExpiresByType image/jpeg "access plus12  12 months"

    ExpiresByType image/jpg "access plus 12 months"

    ExpiresByType image/png "access plus 12 months"

    EXpiresByType application/x-shockwave-flash "access plus 12 months"

    EXpiresByType application/x-javascript "access plus 12 months"

    ExpiresByType video/x-flv "access plus 12 months"

#這一串代碼可以加在httpd.conf檔案的最後,也可以加在httpd-vhost.conf檔案中虛擬機器主機配置的後面

<ifmodule mod_deflate.c>

        DeflateCompressionLevel 9

        SetOutputFilter DEFLATE

        AddOutputFilterByType DEFLATE text/html text/plain text/xml

        AddOutputFilterByType DEFLATE application/javascript

        AddOutputFilterByType DEFLATE text/css

    </ifmodule>

 

</VirtualHost>

 

<VirtualHost *:8091>

    ServerAdmin [email protected]

    DocumentRoot "/var/html/bbs"

    ServerName bbs.etiantian.org

    ServerAlias etiantian.org

    ErrorLog "/app/logs/bbs-error_log"

   # CustomLog "/app/logs/bbs-access_log" common

    CustomLog "|/usr/local/sbin/cronolog /app/logs/access_bbs_%w.log" combined

</VirtualHost>

使用curl  -I  URL的方式查看該檔案的到期時間

 

1.4   生產環境mod_expire優點

(1) 提升使用者體驗

(2) 節約網站頻寬成本

(3) 節約網站伺服器及維護成本

 

1.5  expires失效條件

(1) 使用者主動清空緩衝

(2) 設定的緩衝時間到期

 

1.6 控制expires方法

如果網站更新功能或更新檔案後,使用者再訪問時的內容還是舊的,怎麼解決這個問題

解答:

1)    首先,對於大多數公司業務來說,圖片等資源一般很少會去修改,因此可以修改為10年

2)    對於js,css偶爾會變化的資源,一般expires設定時間比較短,比如1-30天

3)    在更新檔案上採取策略,如,更新後以新的檔案名稱發布

 

2 mod_deflate模組介紹

mod_deflate模組提供了DEFLATE輸出過濾器,允許伺服器在將輸出內容在發送到用戶端之前進行壓縮,以節約頻寬。

 

兩種安裝方式:

  1. 靜態編譯,即在編譯的時候加上--enable-deflate(bin/apachectl -l 查看是否安裝)
  2. 以DSO的方式執行安裝(bin/apachectl  -M查看是否安裝)

 

只需要把下面的配置複製到http.conf結尾儲存,即可讓所有的虛擬機器主機生效

<ifmodule mod_deflate.c>

DeflateCompressionLevel 9  #壓縮的等級,越大壓縮等級越高,消耗CPU越高

SetOutputFilter DEFLATE    #啟用壓縮

AddOutputFilterByType DEFLATE text/html text/plain text/xml   #這三行設定壓縮類型

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE text/css

</ifmodule>

 

同樣適用curl  -I URL的方式查看,還可以使用firefox外掛程式查看

 

Linux課程筆記 Apache常用模組的介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.