《apache常用配置指令說(shuō)明(4)》要點(diǎn):
本文介紹了apache常用配置指令說(shuō)明(4),希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
相關(guān)主題:apache配置
MaxRequestsPerChild:設(shè)置每個(gè)子進(jìn)程在其生存期內(nèi)允許伺服的最大請(qǐng)求數(shù)量。到達(dá)MaxRequestsPerChild的限制后,子進(jìn)程將會(huì)結(jié)束。如果MaxRequestsPerChild為"0",子進(jìn)程
將永遠(yuǎn)不會(huì)結(jié)束。將MaxRequestsPerChild設(shè)置成非零值有兩個(gè)好處:可以防止(偶然的)內(nèi)存泄漏無(wú)限進(jìn)行而耗盡內(nèi)存;
給進(jìn)程一個(gè)有限壽命,從而有助于當(dāng)服務(wù)器負(fù)載減輕的時(shí)候減少活動(dòng)進(jìn)程的數(shù)量。
如果設(shè)置為非零值,建議設(shè)為10000-30000之間的一個(gè)值。
公式:
ThreadLimit >= ThreadsPerChild
MaxClients <= ServerLimit * ThreadsPerChild 必須是ThreadsPerChild的倍數(shù)
MaxSpareThreads >= MinSpareThreads+ThreadsPerChild
#配置Apache服務(wù)器默認(rèn)設(shè)置 httpd-default.conf
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 5
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Prod
ServerSignature Off
HostnameLookups Off
Timeout:設(shè)置服務(wù)器在斷定請(qǐng)求失敗前等待的秒數(shù)。默認(rèn)值300。
KeepAlive:設(shè)置是否啟用HTTP持久鏈接,On 代表打開(kāi),Off 代表關(guān)閉。如果用于同一頁(yè)面包含大量靜態(tài)文件的應(yīng)用,設(shè)置為On,以提高性能;如果用于主要為動(dòng)態(tài)頁(yè)面的應(yīng)用,
設(shè)置為Off,以節(jié)約內(nèi)存資源;如果服務(wù)器前跑有squid或者其它七層設(shè)備,設(shè)置為On。
MaxKeepAliveRequests:限制當(dāng)啟用KeepAlive時(shí),每個(gè)連接允許的請(qǐng)求數(shù)量。如果將此值設(shè)為"0",將不限制請(qǐng)求的數(shù)目。筆者建議將此值設(shè)為100-500之間的一個(gè)值,以確保最優(yōu)
的服務(wù)器性能。
KeepAliveTimeout:設(shè)置持久鏈接中服務(wù)器在兩次請(qǐng)求之間等待的秒數(shù)。對(duì)于高負(fù)荷服務(wù)器來(lái)說(shuō),KeepAliveTimeout值較大會(huì)導(dǎo)致一些性能方面的問(wèn)題:超時(shí)值越大,與空閑客戶
端保持連接的進(jìn)程就越多。
UseCanonicalName:配置服務(wù)器如何確定它自己的域名,可選值為On | Off | DNS。DNS用于為大量基于IP的虛擬主機(jī)支持那些古董級(jí)的不提供"Host:"頭的瀏覽器使用。筆者建議
設(shè)置為Off。
AccessFileName:設(shè)置分布式配置文件的名字,默認(rèn)為.htaccess。如果為某個(gè)目錄啟用了分布式配置文件功能,那么在向客戶端返回其中的文檔時(shí),服務(wù)器將在這個(gè)文檔所在的各
級(jí)目錄中查找此配置文件,因此會(huì)帶來(lái)性能問(wèn)題,筆者建議關(guān)閉分布式配置文件功能。
ServerTokens:控制服務(wù)器回應(yīng)給客戶端的"Server:"應(yīng)答頭是否包含關(guān)于服務(wù)器操作系統(tǒng)類型和編譯進(jìn)的模塊描述信息,同時(shí)還控制著 ServerSignature指令的顯示內(nèi)容。可選值
為Full | OS | Minor | Minimal | Major | Prod。筆者建議設(shè)置為顯示最少信息的Prod。
ServerSignature:配置服務(wù)器生成頁(yè)面的頁(yè)腳,可選值為On | Off | EMail。采用On會(huì)簡(jiǎn)單的增加一行關(guān)于服務(wù)器版本和正在伺服的虛擬主機(jī)的ServerName,而EMail設(shè)置會(huì)額外
創(chuàng)建一個(gè)指向 ServerAdmin的"mailto:"部分。建議使用默認(rèn)值Off。
HostnameLookups:設(shè)置是否啟用對(duì)客戶端IP的DNS查找,可選值為On | Off | Double。DNS查詢會(huì)造成明顯的時(shí)間消耗,建議設(shè)置為Off。
#配置mod_deflate壓縮模塊 httpd-deflate.conf
mod_deflate模塊提供了DEFLATE輸出過(guò)濾器,允許服務(wù)器在將輸出內(nèi)容發(fā)送到客戶端以前進(jìn)行壓縮,以節(jié)約帶寬。
編輯mod_deflate壓縮模塊設(shè)置文件:
<IfModule mod_deflate.c>
DeflateMemLevel 9
DeflateWindowSize 15
DeflateBufferSize 8096
DeflateCompressionLevel 8
## 調(diào)試時(shí)去掉下面5行前的注釋符,用以記錄壓縮日志
#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
#LogFormat '"%r" %b %{outstream}n/%{instream}n (%{ratio}n%%) "%{User-agent}i"' deflate
#CustomLog logs/deflate_log deflate
## 插入DEFLATE過(guò)濾器,以啟用輸出壓縮
SetOutputFilter DEFLATE
## Netscape 4.x 有一些問(wèn)題,僅壓縮txt/html類型
BrowserMatch ^Mozilla/4 gzip-only-text/html
## Netscape 4.06-4.08不能處理任何壓縮內(nèi)容,不進(jìn)行壓縮
BrowserMatch ^Mozilla/4.0[678] no-gzip
## MSIE 會(huì)偽裝成 Netscape ,但是事實(shí)上它沒(méi)有問(wèn)題
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
## 設(shè)置圖片、mp3、壓縮格式文件等不需要進(jìn)行壓縮內(nèi)容
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
## 確保代理不會(huì)發(fā)送錯(cuò)誤的內(nèi)容
Header append Vary User-Agent env=!dont-vary
</IfModule>
DeflateMemLevel:指定zlib在壓縮時(shí)最多可以使用多少內(nèi)存,取值范圍在1到9之間。
DeflateWindowSize:定義zlib壓縮窗口(compression window)的大小,取值范圍在1到15之間,通常窗口越大壓縮效果越好。
DeflateBufferSize:定義zlib一次壓縮的片斷的字節(jié)數(shù),默認(rèn)為8096。
DeflateCompressionLevel:設(shè)定壓縮程度,越高的壓縮程度就會(huì)有越好的壓縮效果,同時(shí)也意味著占用越多的CPU資源。取值范圍在 1(最低壓縮率) 到 9(最高壓縮率)之間,如果
不設(shè)置此指令,默認(rèn)為zlib的默認(rèn)值。
DeflateFilterNote:在日志中放置壓縮率標(biāo)記。
語(yǔ)法為:DeflateFilterNote type notename
notename就表示這個(gè)壓縮率標(biāo)記的名字,你可以為了某種統(tǒng)計(jì)目的將這個(gè)標(biāo)記的名字添加到訪問(wèn)日志中。
type指定notename標(biāo)記所記錄的數(shù)據(jù)類型:Input,在標(biāo)記中存儲(chǔ)過(guò)濾器輸入流的字節(jié)數(shù);Output,在標(biāo)記中存儲(chǔ)過(guò)濾器輸出流的字節(jié)數(shù);Ratio,在標(biāo)記中存儲(chǔ)過(guò)濾器的壓縮比(輸
出/輸入*100),這是type的默認(rèn)值。
SetOutputFilter:設(shè)置用于在服務(wù)器應(yīng)答發(fā)送到客戶端之前使用的過(guò)濾器。如果多于一個(gè)過(guò)濾器,必須按照處理內(nèi)容的順序用分號(hào)(;)分隔。
BrowserMatch:基于User-Agent頭有條件地設(shè)置環(huán)境變量。
SetEnvIfNoCase:根據(jù)大小寫(xiě)無(wú)關(guān)的客戶端請(qǐng)求屬性設(shè)置環(huán)境變量。
Headers:配置HTTP應(yīng)答頭。這個(gè)指令可以替換、合并、刪除HTTP應(yīng)答頭。應(yīng)答頭緊跟在內(nèi)容處理器和輸出過(guò)濾器完工之后生成,這時(shí)候才能對(duì)頭進(jìn)行修改。
#配置mod_expires模塊
這個(gè)模塊控制服務(wù)器應(yīng)答時(shí)的Expires頭內(nèi)容和Cache-Control頭的max-age指令。有效期(expiration date)可以設(shè)置為相對(duì)于源文件的最后修改時(shí)刻或者客戶端的訪問(wèn)時(shí)刻。這些
HTTP頭向客戶端表明了文檔的有效性和持久性。如果有緩存,文檔就可以從緩存(除已經(jīng)過(guò)期)而不是從服務(wù)器讀取。接著,客戶端考察緩存中的副本,看看是否過(guò)期或者失效,以
決定是否必須從服務(wù)器獲得更新。
編輯mod_expires設(shè)置文件:httpd-expires.conf
## mod_expires設(shè)置文件
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault A300
ExpiresByType text/html A300
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
ExpiresByType text/css A2592000
ExpiresByType text/js A2592000
ExpiresByType text/javascript A2592000
ExpiresByType application/x-javascript A2592000
</IfModule>
ExpiresActive:對(duì)其作用范圍內(nèi)的文檔啟用或禁用產(chǎn)生Expires和Cache-Control頭的功能。若設(shè)置為 Off 則不會(huì)為其作用范圍內(nèi)的任何文檔生成Expires和Cache-Control頭(除非
被更低一層的規(guī)則改寫(xiě),比如.htaccess文件)。若設(shè)置為 On 則會(huì)按照ExpiresByType和ExpiresDefault指令定義的標(biāo)準(zhǔn)為其作用范圍內(nèi)的文檔生成Expires和Cache-Control 頭。
注意,這個(gè)指令并不保證Expires或Cache-Control頭一定會(huì)產(chǎn)生。如果定義的標(biāo)準(zhǔn)不規(guī)范,將不會(huì)產(chǎn)生這兩個(gè)頭,其效果是好像從未設(shè)置過(guò)這個(gè)指令一樣。
ExpiresByType:為指定MIME類型的文檔配置Expires頭的值。
語(yǔ)法為:ExpiresByType MIME-type <code>seconds
seconds參數(shù)設(shè)置了添加到基準(zhǔn)時(shí)間以構(gòu)造有效期限的秒數(shù)。Cache-Control: max-age的計(jì)算方法是從有效期減去當(dāng)前請(qǐng)求時(shí)間并轉(zhuǎn)化為秒數(shù)。
基準(zhǔn)時(shí)刻可以是源文件的最后修改時(shí)刻或者客戶端對(duì)源文件的訪問(wèn)時(shí)刻,至于使用那一個(gè)則由<code>指定。"M"表示源文件的最后修改時(shí)刻,"A"表示客戶端對(duì)源文件的訪問(wèn)時(shí)刻。
需要注意的是<code>和seconds之間沒(méi)有空格。如果使用"M",所有當(dāng)前緩存中的文檔副本都將在同一時(shí)刻過(guò)期,這個(gè)可能對(duì)定期更新的URL(比如位于同一位置的每周通告)很有好處
。如果使用"A",則每個(gè)客戶端所得到的有效期是不一樣的,這個(gè)可能對(duì)那些幾乎不更新的圖片文件很有好處,特別是對(duì)于一組都引用了相同圖片的相關(guān)文檔。
ExpiresDefault:設(shè)置其作用范圍內(nèi)的所有文檔的默認(rèn)有效期的計(jì)算方法,它可以被ExpiresByType指令基于MIME類型被改寫(xiě)。
語(yǔ)法為:ExpiresDefault <code>seconds
<code>seconds同ExpiresByType一致。
#最后配置一下虛擬主機(jī) httpd-vhost.conf
#這里重點(diǎn)介紹一下基于多端口的配置
NameVirtualHost *:81
NameVirtualHost *:82
NameVirtualHost *:83
<VirtualHost *:81>
ServerAdmin jafy@jafy00.com
DocumentRoot /www1
ServerName www.jafy00.com
ErrorLog logs/www1-error.log
CustomLog logs/www1-access_log common
<Directory "/www1">
#界定虛擬主機(jī)的主頁(yè)、可讀寫(xiě)目錄和其它特性。
</Directory>
</VirtualHost>
<VirtualHost *:82>
<Directory "/www2" >
Options FollowSymLinks
#Deny from all
Allow from all
</Directory>
ServerAdmin jafy@jafy00.com
DocumentRoot /www2
ServerName www.jafy00.com
DirectoryIndex index.php index.html
ErrorLog logs/www2-error.log
CustomLog logs/www2-access_log combined
</VirtualHost>
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/26_4.html