新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux網(wǎng)站架構(gòu)系列之a(chǎn)pache----調(diào)優(yōu)篇

Linux網(wǎng)站架構(gòu)系列之a(chǎn)pache----調(diào)優(yōu)篇

作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

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

按小時輪詢(生產(chǎn)環(huán)境較常見用法):

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

六、錯誤頁面優(yōu)雅顯示

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

錯誤頁面優(yōu)雅化顯示的實現(xiàn)方式主要有兩種,下面我們主要以404錯誤為例:

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

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

AllowOverride None

Options None

Require all granted

ErrorDocument 404 /l #將404錯誤跳轉(zhuǎn)到/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代碼,由于需要每次加載進而進行來訪信息統(tǒng)計,所以這些廣告代碼擁有者網(wǎng)站的js不會經(jīng)過gzip壓縮,

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

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

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) #此種結(jié)果為編譯安裝時裝的

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

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

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

a)編譯時安裝方法

編譯的時候跟上--enable-deflate即可實現(xiàn)安裝

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后跟的參數(shù)詳解

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

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

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

壓縮模塊配置

2、配置壓縮參數(shù)

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

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數(shù)量

DeflateFilterNote Output outstream #聲明輸出流的byte數(shù)量

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類型文件

執(zhí)行上面的添加后,我們對apache進行優(yōu)雅重啟

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

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



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉