新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux網站架構系列之apache----調優篇

        Linux網站架構系列之apache----調優篇

        作者: 時間:2016-10-08 來源:網絡 收藏

        CustomLog |/usr/local/sbin/cronolog /app/logs/access_www_%Y%m%d.log combined

        按小時輪詢(生產環境較常見用法):

        CustomLog |/usr/local/sbin/cronolog /app/logs /access_www_ %Y%m%d%H.log combined

        六、錯誤頁面優雅顯示

        為了提升網站的用戶體驗,避免404,403之類的丑陋的默認錯誤提示出現,我們需要對錯誤頁面進行優化,讓他們變的漂亮一點。錯誤頁面不僅在于告訴用戶訪問出現了問題,而且需要引導用戶到正確的頁面。

        錯誤頁面優雅化顯示的實現方式主要有兩種,下面我們主要以404錯誤為例:

        第一種:在apache的主配置文件中的標簽內添加ErrorDocument配置。

        [root@sunsky /]# vi /usr/local/apache/conf/

        AllowOverride None

        Options None

        Require all granted

        ErrorDocument 404 /l #將404錯誤跳轉到/www/html下的l頁面上

        第二種方法:在apache的虛擬主機配置文件中的

        ServerAdmin

        DocumentRoot /www/html

        ServerName www.sunsky.pw

        ServerAlias sunsky.pw

        CustomLog |/usr/local/sbin/cronolog /app/logs/www_access_%Y%m%d.log combined

        ErrorLog |/usr/local/sbin/cronolog /app/logs/www_error_%Y%m%d.log

        ErrorDocument 404 (php),js,css,xml,txt等。特殊情況就是像一些首頁上有很多廣告投放的js代碼,由于需要每次加載進而進行來訪信息統計,所以這些廣告代碼擁有者網站的js不會經過gzip壓縮,

        mod_deflate模塊,在我們前篇部署的時候已經編譯安裝進去了。

        那么如果沒有安裝,如何安裝呢?并且如果不知道到是否安裝了,如何查看呢?

        1、mod_deflate模塊檢查及安裝

        由于apache2.2.x和2.4.x這兩個版本在檢查mod_deflate模塊是否安裝方法方法是不同的。最后,我無奈做了很多測試,下面建議大家這樣來檢查。

        [root@c64-web /]# /usr/local/apache/bin/apachectl -M | grep deflate

        deflate_module (static) #此種結果為編譯安裝時裝的

        [root@c64-web /]# /usr/local/apache/bin/apachectl -M | grep deflate

        deflate_module (shared) #此種結果為DSO方式安裝的

        安裝了的話,就可以直接進行壓縮配置了,如果沒有安裝,下面為安裝方法

        a)編譯時安裝方法

        編譯的時候跟上--enable-deflate即可實現安裝

        b)DSO方式安裝

        [root@c64-web /]# cd /server/tools/;#切到apache源碼包mod_deflate所在的目錄下

        [root@c64-web filters]# /usr/local/apache/bin/apxs -c -i -a mod_deflate.c #以dso的方式編譯安裝到apache中

        [root@c64-web filters]# ll /usr/local/apache/modules/mod_deflate.so #檢查mod_deflate是否安裝,成功安裝這里會顯示出該文件

        -rwxr-xr-x 1 root root 76697 11月 5 07:50 /usr/local/apache/modules/mod_deflate.so

        擴展:使用DSO方式安裝,apxs后跟的參數詳解

        -c 此選項表明需要執行編譯操作。它首先會編譯c源程序(.c)files為對應的目標代碼文件(.c),然后連接這些目標代碼和files中其余的目標代碼文件(.c和.a),以生成動態共享對象dsofile。如果沒有指定-s選項,則此輸出文件名由files中的第一個文件名推測得出,也就是默認mod_name.so。

        -i 此選項表示需要執行安裝操作,以安裝一個或多個動態共享對象到服務器的modules目錄。

        -a 此選項自動增加一個LoadModule行到文件中,以激活此模塊,或者,如果此行已經存在,則啟用之。

        壓縮模塊配置

        2、配置壓縮參數

        注意如果我們是編譯安裝時已經編譯進去的,此時我們需要先將主配置文件中

        LoadModule deflate_module modules/mod_deflate.so

        此行解鎖后再進行下面操作,不然下面的操作會報錯。

        我們需要在虛擬機的

        DeflateCompressionLevel 9 #壓縮等級,越大效率越高,消耗CPU也越高

        SetOutputFilter DEFLATE #啟用壓縮

        AddOutputFilterByType DEFLATE text/html text/plain text/xml #僅壓縮限制特定的MIME類型文件:

        AddOutputFilterByType DEFLATE application/javascript

        AddOutputFilterByType DEFLATE text/css

        AddOutputFilterByType DEFLATE image/gif image/png image/jpe image/swf image/jpeg image/bmp

        #DeflateFilterNote ratio #在日志中放置壓縮率標記,下面是記錄日志的,這個功能一般不用

        #LogFormat '%r %{outstream}n/%{instream}n (%{ratio}n%%)' deflate

        #CustmLog logs/deflate_log.log deflate

        下面是朋友公司的另外一種壓縮配置,有興趣的朋友們也可以操作操作。

        DeflateCompressionLevel 9

        SetOutputFilter DEFLATE

        DeflateFilterNote Input instream #聲明輸入流的byte數量

        DeflateFilterNote Output outstream #聲明輸出流的byte數量

        DeflateFilterNote Ratio ratio #聲明壓縮的百分比

        #LogFormat '%r %{outstream}n/%{instream}n (%{ratio}n%%)' deflate #聲明日志類型

        #CustomLog logs/deflate_log.log deflate #聲明日志類型

        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript #僅壓縮限制特定的MIME類型文件

        執行上面的添加后,我們對apache進行優雅重啟

        [root@c64-web /]# /usr/local/apache/bin/apachectl graceful

        下面訪問我們的網站,然后用火狐或者google游覽器的YSLOW插件進行壓縮效果的查看



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 梅州市| 阿合奇县| 栖霞市| 汉阴县| 淮南市| 韩城市| 遂昌县| 安顺市| 隆子县| 孟连| 合肥市| 鄂温| 萝北县| 南充市| 三原县| 剑河县| 涿州市| 砀山县| 丰镇市| 通河县| 和龙市| 神池县| 海宁市| 乌兰浩特市| 镇江市| 德令哈市| 印江| 江达县| 杭州市| 华阴市| 东海县| 家居| 江北区| 吕梁市| 松溪县| 湟源县| 泰顺县| 嵊泗县| 将乐县| 广安市| 柳江县|