欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

<-
Apache > HTTP Server > 文檔 > 版本2.2 > 模塊
   致謝 | 譯者聲明 | 本篇譯者:金步國 | 本篇譯稿最后更新:2006年1月22日 | 獲取最新版本

Apache MPM 公共指令

說明收集了被多個多路處理模塊(MPM)實現(xiàn)的公共指令
狀態(tài)MPM
top

AcceptMutex 指令

說明Apache用于串行化多個子進(jìn)程在(多個)網(wǎng)絡(luò)套接字(socket)上接受請求的方法
語法AcceptMutex Default|method
默認(rèn)值AcceptMutex Default
作用域server config
狀態(tài)MPM
模塊prefork, worker

AcceptMutex指令用于設(shè)置串行化多個子進(jìn)程在(多個)網(wǎng)絡(luò)套接字上接受請求的方法。在2.0版本以前,只能在編譯時設(shè)定此方法。應(yīng)當(dāng)在這里使用的最佳方法取決于不同的硬件體系結(jié)構(gòu)和操作系統(tǒng)。欲知詳情,請參見性能調(diào)節(jié)文檔。

如果設(shè)置為Default ,那么將會使用編譯時自動選擇的默認(rèn)值。其他可用的方法在下面列出。注意,并不是所有的方法在所有的平臺上都是可用的,如果指定了一個不可用的方法,將會在錯誤日志中記錄下這個不可用的方法。

flock
這種方法調(diào)用系統(tǒng)函數(shù)flock(2)來鎖定一個加鎖文件(其位置取決于LockFile指令)。
fcntl
這種方法調(diào)用系統(tǒng)函數(shù)fcntl(2)來鎖定一個加鎖文件(其位置取決于LockFile指令)。
posixsem
(2.0及更新版本)這種方法使用了POSIX信號燈。如果一個運(yùn)行中的線程占有了互斥segfault ,則信號燈的所有者將不會被恢復(fù),從而導(dǎo)致服務(wù)器的掛起和失去響應(yīng)。
pthread
(1.3及更新版本)這種方法使用了POSIX互斥,按理應(yīng)該可以用于所有完整實現(xiàn)了POSIX線程規(guī)范的體系中,但是似乎只能用在Solaris2.5及更新版本中,甚至只能在某種配置下才正常運(yùn)作。如果遇到這種情況,則應(yīng)該提防服務(wù)器的掛起和失去響應(yīng)。只提供靜態(tài)內(nèi)容的服務(wù)器可能不受影響。
sysvsem
(1.3及更新版本)這種方案使用SysV風(fēng)格的信號燈以實現(xiàn)互斥。不幸的是,SysV風(fēng)格的信號燈有一些副作用,其一是,Apache有可能不能在結(jié)束以前釋放這種信號燈(見ipcs()的man page),另外,這種信號燈API給與網(wǎng)絡(luò)服務(wù)器有相同uid的CGI提供了拒絕服務(wù)攻擊的機(jī)會(所有CGI,除非用了類似suexeccgiwrapper)。鑒于此,在多數(shù)體系中都不用這種方法,除了IRIX(因為加鎖文件的方法在IRIX中代價太高)。

如果你想知道編譯時自動選擇的默認(rèn)值,你可以將LogLevel設(shè)為debug ,這樣默認(rèn)的AcceptMutex就會記錄到ErrorLog中。

警告

在大多數(shù)系統(tǒng)上,使用pthread時,如果一個子進(jìn)程在持有AcceptCntl互斥信號時異常中止,服務(wù)器將會掛起和失去響應(yīng),此時必須手動重啟服務(wù)器才能解決問題。但Solaris是一個例外,因為它提供了一個機(jī)制(Apache利用了該機(jī)制),允許在一個持有互斥信號的子進(jìn)程異常中止后恢復(fù)互斥信號。

如果你的操作系統(tǒng)實現(xiàn)了pthread_mutexattr_setrobust_np()函數(shù),基本上就能安全的使用pthread選項。

top

CoreDumpDirectory 指令

說明Apache使用的內(nèi)核轉(zhuǎn)儲目錄
語法CoreDumpDirectory directory
默認(rèn)值參見說明
作用域server config
狀態(tài)MPM
模塊beos, mpm_winnt, prefork, worker

這個指令用于控制Apache使用的內(nèi)核轉(zhuǎn)儲目錄。默認(rèn)位于ServerRoot下,因為這個目錄通常對于運(yùn)行服務(wù)器的用戶是不可寫的,內(nèi)核轉(zhuǎn)儲一般也就不會寫入內(nèi)容。如果你在調(diào)試中需要內(nèi)核轉(zhuǎn)儲,你可以用這個指令來指定另外一個目錄。

Linux上的內(nèi)核轉(zhuǎn)儲

如果Apache以root身份啟動并切換至其他用戶,即使指定的轉(zhuǎn)儲目錄對進(jìn)程是可寫的,Linux內(nèi)核也將禁止Apache進(jìn)行內(nèi)核轉(zhuǎn)儲。但是Apache2.0.46及以后的版本在你明確指定CoreDumpDirectory的情況下,能夠在Linux2.4以上的版本中強(qiáng)制實現(xiàn)內(nèi)核轉(zhuǎn)儲。

top

EnableExceptionHook 指令

說明在子進(jìn)程崩潰以后啟用一個鉤子來運(yùn)行異常處理程序
語法EnableExceptionHook On|Off
默認(rèn)值EnableExceptionHook Off
作用域server config
狀態(tài)MPM
模塊prefork, worker
兼容性僅在 Apache 2.0.49 及以后的版本中可用

因為安全原因,這個指令僅在編譯時使用了 --enable-exception-hook 選項的情況下才可用。它會在一個子進(jìn)程崩潰以后啟用一個鉤子(hook)來運(yùn)行一個外部模塊以做些后繼處理。

目前有兩個模塊(mod_whatkilledusmod_backtrace)可以被鉤子使用。請參見Jeff Trawick的EnableExceptionHook site以獲得更多信息。

top

GracefulShutdownTimeout 指令

說明指定優(yōu)雅停止服務(wù)器的超時秒數(shù)
語法GracefulShutDownTimeout seconds
默認(rèn)值GracefulShutDownTimeout 0
作用域server config
狀態(tài)MPM
模塊prefork, worker, event
兼容性僅在 Apache 2.2 及以后的版本中可用

GracefulShutdownTimeout設(shè)置服務(wù)器在收到"優(yōu)雅停止"信號后最多允許使用多少秒來處理尚未完成的連接,超時后服務(wù)器將強(qiáng)行退出。

設(shè)為"0"表示永不超時,也就是服務(wù)器必須在處理完所有尚未完成的請求之后才能退出。

top

Group 指令

說明對請求提供服務(wù)的Apache子進(jìn)程運(yùn)行時的用戶組
語法Group unix-group
默認(rèn)值Group #-1
作用域server config
狀態(tài)MPM
模塊beos, mpmt_os2, prefork, worker
兼容性Apache2.0以后只對全局配置有效

Group指令指定了用于對客戶端請求提供服務(wù)的Apache子進(jìn)程運(yùn)行時的用戶組。為了使用這個指令,Apache必須以root初始化啟動,否則在切換用戶組時會失敗,并繼續(xù)以初始化啟動時的用戶組運(yùn)行。Unix-group可以是下列之一:

用戶組的名稱
通過名稱引用組。
"#"號后跟一個組編號(GID)
通過編號引用組。

示例

Group www-group

建議你專門為Apache服務(wù)器新建一個用戶組。一些管理員使用nobody用戶,但是這并非總是可用或是合適的。

安全

不要將Group(或User)設(shè)置成root ,除非你明確知道自己在做什么,并且明白其風(fēng)險所在。

特別提示:在<VirtualHost>段中使用該指令已經(jīng)不再被支持了。你可以使用suexecSuexecUserGroup指令來達(dá)到這個目的。

注意

雖然Group指令也存在于beosmpmt_os2MPM中,但是事實上沒用任何用處,只不過是個擺飾罷了。

top

Listen 指令

說明服務(wù)器監(jiān)聽的IP地址和端口
語法Listen [IP-address:]portnumber [protocol]
作用域server config
狀態(tài)MPM
模塊beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker, event
兼容性Apache2.0以后必須設(shè)置該指令,protocol參數(shù)僅在2.1.5及以后版本中可用

Listen指令指示Apache只在指定的IP地址和端口上監(jiān)聽;默認(rèn)情況下Apache會在所有IP地址上監(jiān)聽。Listen是一個必須設(shè)置的指令。如果在配置文件中找不到這個指令,服務(wù)器將無法啟動。這和先前的版本不一樣。

Listen指令指定服務(wù)器在那個端口或地址和端口的組合上監(jiān)聽接入請求。如果只指定一個端口,服務(wù)器將在所有地址上監(jiān)聽該端口。如果指定了地址和端口的組合,服務(wù)器將在指定地址的指定端口上監(jiān)聽。

使用多個Listen指令可以指定多個不同的監(jiān)聽端口和/或地址端口組合。服務(wù)器將會對列出的所有端口和地址端口組合上的請求作出應(yīng)答。

例如,想要服務(wù)器接受80和8000端口上的請求,可以這樣設(shè)置:

Listen 80
Listen 8000

為了讓服務(wù)器在兩個確定的地址端口組合上接受請求,可以這樣設(shè)置:

Listen 192.170.2.1:80
Listen 192.170.2.5:8000

IPv6地址必須像下面的例子一樣,用方括號括起來:

Listen [2001:db8::a00:20ff:fea7:ccea]:80

可選的protocol參數(shù)在大多數(shù)情況下并不需要。若未指定該參數(shù),則將為443端口使用默認(rèn)的https協(xié)議,為其它端口使用http協(xié)議。在這里指定協(xié)議是為了確定使用哪個模塊來處理請求,以及根據(jù)AcceptFilter指令根據(jù)不同的協(xié)議有針對性的進(jìn)行優(yōu)化。

僅在使用非標(biāo)準(zhǔn)端口時才需要指定protocol參數(shù)。比如在8443端口運(yùn)行https協(xié)議:

Listen 192.170.2.1:8443 https

錯誤條件

多個Listen指令指定了同一個地址和端口的組合后,會導(dǎo)致"Address already in use"錯誤。

參見

top

ListenBackLog 指令

說明半鏈接(pending connection)隊列的最大長度
語法ListenBacklog backlog
默認(rèn)值ListenBacklog 511
作用域server config
狀態(tài)MPM
模塊beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

半鏈接(pending connection)隊列的最大長度。一般不需要調(diào)整此項參數(shù),然而在一些系統(tǒng)上,必須增大此值以抵御TCP SYN 洪水攻擊。參見操作系統(tǒng)的listen(2)系統(tǒng)調(diào)用的后備參數(shù)。

操作系統(tǒng)常常將此值限制為一個較小的數(shù)字,具體根據(jù)操作系統(tǒng)的不同而不同。需要注意的是,許多操作系統(tǒng)并不是正好使用后備數(shù)值,而是取決于設(shè)置的值(通常大于后備值)。

top

LockFile 指令

說明接受串行鎖文件的位置
語法LockFile filename
默認(rèn)值LockFile logs/accept.lock
作用域server config
狀態(tài)MPM
模塊prefork, worker

LockFile指令設(shè)置當(dāng)AcceptMutex指令的值是fcntlflock的時候,Apache使用的鎖文件的位置。該指令通常保持它的默認(rèn)值。改變默認(rèn)值的主要原因是logs目錄位于一個NFS文件系統(tǒng)上,因為鎖文件必須位于本地磁盤上。主服務(wù)器進(jìn)程的PID會自動添加到文件名后面。

安全

最好不要將此文件放在任何人都可以具有寫權(quán)限的目錄(比如/var/tmp)中,因為別人可以通過建立一個與服務(wù)器企圖建立的鎖文件同名的文件,來阻止服務(wù)器啟動,從而造成一個拒絕服務(wù)攻擊。

參見

top

MaxClients 指令

說明允許同時伺服的最大接入請求數(shù)量
語法MaxClients number
默認(rèn)值參見下面的說明
作用域server config
狀態(tài)MPM
模塊beos, prefork, worker

MaxClients指令設(shè)置了允許同時伺服的最大接入請求數(shù)量。任何超過MaxClients限制的請求都將進(jìn)入等候隊列,直到達(dá)到ListenBacklog指令限制的最大值為止。一旦一個鏈接被釋放,隊列中的請求將得到服務(wù)。

對于非線程型的MPM(也就是prefork),MaxClients表示可以用于伺服客戶端請求的最大子進(jìn)程數(shù)量,默認(rèn)值是256。要增大這個值,你必須同時增大ServerLimit

對于線程型或者混合型的MPM(也就是beosworker),MaxClients表示可以用于伺服客戶端請求的最大線程數(shù)量。線程型的beos的默認(rèn)值是50。對于混合型的MPM默認(rèn)值是16(ServerLimit)乘以25(ThreadsPerChild)的結(jié)果。因此要將MaxClients增加到超過16個進(jìn)程才能提供的時候,你必須同時增加ServerLimit的值。

top

MaxMemFree 指令

說明主內(nèi)存分配程序在未調(diào)用free()的情況下允許持有的最大自由內(nèi)存數(shù)量(KB)
語法MaxMemFree KBytes
默認(rèn)值MaxMemFree 0
作用域server config
狀態(tài)MPM
模塊beos, mpm_netware, prefork, worker, mpm_winnt

MaxMemFree指令用于設(shè)置主內(nèi)存分配程序在未調(diào)用free()的情況下允許持有的最大自由內(nèi)存數(shù)量(KB)。若未設(shè)置或設(shè)置為"0",將表示無限制。

top

MaxRequestsPerChild 指令

說明每個子進(jìn)程在其生存期內(nèi)允許伺服的最大請求數(shù)量
語法MaxRequestsPerChild number
默認(rèn)值MaxRequestsPerChild 10000
作用域server config
狀態(tài)MPM
模塊mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

MaxRequestsPerChild指令設(shè)置每個子進(jìn)程在其生存期內(nèi)允許伺服的最大請求數(shù)量。到達(dá)MaxRequestsPerChild的限制后,子進(jìn)程將會結(jié)束。如果MaxRequestsPerChild為"0",子進(jìn)程將永遠(yuǎn)不會結(jié)束。

不同的默認(rèn)值

mpm_netwarempm_winnt上的默認(rèn)值是"0"。

MaxRequestsPerChild設(shè)置成非零值有兩個好處:

注意

對于KeepAlive鏈接,只有第一個請求會被計數(shù)。事實上,它改變了每個子進(jìn)程限制最大鏈接數(shù)量的行為。

top

MaxSpareThreads 指令

說明最大空閑線程數(shù)
語法MaxSpareThreads number
默認(rèn)值參見下面的說明
作用域server config
狀態(tài)MPM
模塊beos, mpm_netware, mpmt_os2, worker

設(shè)置最大空閑線程數(shù)。不同的MPM對這個指令的處理是不一樣的:

worker的默認(rèn)值是"250"。這個MPM將基于整個服務(wù)器監(jiān)視空閑線程數(shù)。如果服務(wù)器中總的空閑線程數(shù)太多,子進(jìn)程將殺死多余的空閑線程。

mpm_netware的默認(rèn)值是"100"。既然這個MPM只運(yùn)行單獨(dú)一個子進(jìn)程,此MPM當(dāng)然亦基于整個服務(wù)器監(jiān)視空閑線程數(shù)。

beosmpmt_os2的工作方式與mpm_netware差不多,beos的默認(rèn)值是"50";mpmt_os2的默認(rèn)值是"10"。

限制

MaxSpareThreads的取值范圍是有限制的。Apache將按照如下限制自動修正你設(shè)置的值:

參見

top

MinSpareThreads 指令

說明最小空閑線程數(shù)
語法MinSpareThreads number
默認(rèn)值參見下面的說明
作用域server config
狀態(tài)MPM
模塊beos, mpm_netware, mpmt_os2, worker

設(shè)置最小空閑線程數(shù),用于處理可能到來的突發(fā)請求。不同的MPM對這個指令的處理是不一樣的:

worker的默認(rèn)值是"75"。這個MPM將基于整個服務(wù)器監(jiān)視空閑線程數(shù)。如果服務(wù)器中總的空閑線程數(shù)太少,子進(jìn)程將產(chǎn)生新的空閑線程。

mpm_netware的默認(rèn)值是"10"。既然這個MPM只運(yùn)行單獨(dú)一個子進(jìn)程,此MPM當(dāng)然亦基于整個服務(wù)器監(jiān)視空閑線程數(shù)。

beosmpmt_os2的工作方式與mpm_netware差不多,beos的默認(rèn)值是"1";mpmt_os2的默認(rèn)值是"5"。

參見

top

PidFile 指令

說明服務(wù)器用于記錄父進(jìn)程(監(jiān)控進(jìn)程)PID的文件
語法PidFile filename
默認(rèn)值PidFile logs/httpd.pid
作用域server config
狀態(tài)MPM
模塊beos, mpm_winnt, mpmt_os2, prefork, worker

PidFile指令設(shè)置服務(wù)器用于記錄父進(jìn)程(監(jiān)控進(jìn)程)PID的文件。如果指定的不是絕對路徑,那么將視為基于ServerRoot的相對路徑。

示例

PidFile /var/run/apache.pid

這個文件通常用來便于給服務(wù)器父進(jìn)程發(fā)送一個信號,用于關(guān)閉或重啟服務(wù)器,以重新打開ErrorLogTransferLog文件、重新讀取配置文件。這些可以通過發(fā)送一個"SIGHUP"(kill -1)信號到PidFile記錄的進(jìn)程PID。

PidFile和其他日志文件一樣要注意放置位置和安全問題。

注意

從Apache2開始,推薦使用apachectl腳本來啟動或停止服務(wù)器。

top

ReceiveBufferSize 指令

說明TCP接收緩沖區(qū)大小(字節(jié))
語法ReceiveBufferSize bytes
默認(rèn)值ReceiveBufferSize 0
作用域server config
狀態(tài)MPM
模塊beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

這個指令設(shè)置服務(wù)器的TCP接收緩沖區(qū)的大小(字節(jié))。提高這個值會導(dǎo)致兩個后果:高速度和高潛伏時間(100ms左右)。

如果設(shè)置為"0",將使用操作系統(tǒng)默認(rèn)值。

top

ScoreBoardFile 指令

說明存儲子進(jìn)程協(xié)調(diào)數(shù)據(jù)(coordination data)的文件
語法ScoreBoardFile file-path
默認(rèn)值ScoreBoardFile logs/apache_status
作用域server config
狀態(tài)MPM
模塊beos, mpm_winnt, prefork, worker

Apache使用記分板(scoreboard)在父進(jìn)程和子進(jìn)程之間進(jìn)行通信。一些體系結(jié)構(gòu)要求有一個文件來幫助通信。如果未指定這個文件,Apache會首先嘗試在匿名共享內(nèi)存中建立完整的記分板(scoreboard),若失敗,將繼續(xù)嘗試使用基于文件的共享存儲器在磁盤上建立這個文件。若利用這個指令指定這個文件的位置,則Apache將總是在磁盤上建立這個文件。

示例

ScoreBoardFile /var/run/apache_status

基于文件的共享存儲器對于使用直接訪問記分板(scoreboard)的第三方程序是很有用的。

ScoreBoardFile放置在RAM disk中會對速度提升有很大幫助。但是同其他日志文件一樣也要注意放置位置和安全問題。

參見

top

SendBufferSize 指令

說明TCP發(fā)送緩沖區(qū)大小(字節(jié))
語法SendBufferSize bytes
默認(rèn)值SendBufferSize 0
作用域server config
狀態(tài)MPM
模塊beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

這個指令設(shè)置服務(wù)器的TCP發(fā)送緩沖區(qū)的大小(字節(jié))。提高這個值會導(dǎo)致兩個后果:高速度和高潛伏時間(100ms左右)。

如果設(shè)置為"0",將使用操作系統(tǒng)默認(rèn)值。

top

ServerLimit 指令

說明服務(wù)器允許配置的進(jìn)程數(shù)上限
語法ServerLimit number
默認(rèn)值參見下面的說明
作用域server config
狀態(tài)MPM
模塊prefork, worker

對于preforkMPM,這個指令設(shè)置了MaxClients最大允許配置的數(shù)值。對于workerMPM,這個指令和ThreadLimit結(jié)合使用設(shè)置了MaxClients最大允許配置的數(shù)值。任何在重啟期間對這個指令的改變都將被忽略,但對MaxClients的修改卻會生效。

使用這個指令時要特別當(dāng)心。如果將ServerLimit設(shè)置成一個高出實際需要許多的值,將會有過多的共享內(nèi)存被分配。如果將ServerLimitMaxClients設(shè)置成超過系統(tǒng)的處理能力,Apache可能無法啟動,或者系統(tǒng)將變得不穩(wěn)定。

對于preforkMPM,只有在你需要將MaxClients設(shè)置成高于默認(rèn)值256的時候才需要使用這個指令。要將此指令的值保持和MaxClients一樣。

對于workerMPM,只有在你需要將MaxClientsThreadsPerChild設(shè)置成需要超過默認(rèn)值16個子進(jìn)程的時候才需要使用這個指令。不要將該指令的值設(shè)置的比MaxClients ThreadsPerChild需要的子進(jìn)程數(shù)量高。

注意

Apache在編譯時內(nèi)部有一個硬限制"ServerLimit 20000"(對于preforkMPM為"ServerLimit 200000")。你不能超越這個限制。

參見

top

StartServers 指令

說明服務(wù)器啟動時建立的子進(jìn)程數(shù)
語法StartServers number
默認(rèn)值參見下面的說明
作用域server config
狀態(tài)MPM
模塊mpmt_os2, prefork, worker

StartServers指令設(shè)置了服務(wù)器啟動時建立的子進(jìn)程數(shù)量。因為子進(jìn)程數(shù)量動態(tài)的取決于負(fù)載的輕重,所有一般沒有必要調(diào)整這個參數(shù)。

不同的MPM默認(rèn)值也不一樣。對于worker默認(rèn)值是"3"。對于prefork默認(rèn)值是"5",mpmt_os2是"2"。

top

StartThreads 指令

說明服務(wù)器啟動時建立的線程數(shù)
語法StartThreads number
默認(rèn)值參見下面的說明
作用域server config
狀態(tài)MPM
模塊beos, mpm_netware

設(shè)置了服務(wù)器啟動時建立的線程數(shù)量。因為線程數(shù)量動態(tài)的取決于負(fù)載的輕重,所有一般沒有必要調(diào)整這個參數(shù)。

對于mpm_netware ,默認(rèn)值是"50",由于只有一個進(jìn)程,因此所有的線程都將用于伺服請求。

對于beos ,默認(rèn)值是"10",同樣也是所有的線程都將用于伺服請求。

top

ThreadLimit 指令

說明每個子進(jìn)程可配置的線程數(shù)上限
語法ThreadLimit number
默認(rèn)值參見下面的說明
作用域server config
狀態(tài)MPM
模塊mpm_winnt, worker
兼容性僅用于2.0.41及以后版本的mpm_winnt

這個指令設(shè)置了每個子進(jìn)程可配置的線程數(shù)ThreadsPerChild上限。任何在重啟期間對這個指令的改變都將被忽略,但對ThreadsPerChild的修改卻會生效。

使用這個指令時要特別當(dāng)心。如果將ThreadLimit設(shè)置成一個高出ThreadsPerChild實際需要很多的值,將會有過多的共享內(nèi)存被分配。如果將ThreadLimitThreadsPerChild設(shè)置成超過系統(tǒng)的處理能力,Apache可能無法啟動,或者系統(tǒng)將變得不穩(wěn)定。該指令的值應(yīng)當(dāng)和ThreadsPerChild可能達(dá)到的最大值保持一致。

對于mpm_winnt,ThreadLimit的默認(rèn)值是1920;對于其他MPM這個值是64

注意

Apache在編譯時內(nèi)部有一個硬性的限制"ThreadLimit 20000"(對于mpm_winnt是"ThreadLimit 15000"),你不能超越這個限制。

top

ThreadsPerChild 指令

說明每個子進(jìn)程建立的線程數(shù)
語法ThreadsPerChild number
默認(rèn)值參見下面的說明
作用域server config
狀態(tài)MPM
模塊mpm_winnt, worker

這個指令設(shè)置了每個子進(jìn)程建立的線程數(shù)。子進(jìn)程在啟動時建立這些線程后就不再建立新的線程了。如果使用一個類似于mpm_winnt只有一個子進(jìn)程的MPM,這個數(shù)值要足夠大,以便可以處理可能的請求高峰。如果使用一個類似于worker有多個子進(jìn)程的MPM,每個子進(jìn)程所擁有的所有線程的總數(shù)要足夠大,以便可以處理可能的請求高峰。

對于mpm_winntThreadsPerChild的默認(rèn)值是64;對于其他MPM是25

top

ThreadStackSize 指令

說明處理客戶端連接的線程使用的棧尺寸(字節(jié))
語法ThreadStackSize size
默認(rèn)值NetWare上為65536;其它平臺上等于操作系統(tǒng)默認(rèn)值
作用域server config
狀態(tài)MPM
模塊mpm_netware, mpm_winnt, worker
兼容性僅在 Apache 2.1 及以后的版本中可用

ThreadStackSize指令設(shè)置了處理客戶端連接(包括調(diào)用模塊以協(xié)助處理)的線程允許使用的最大棧尺寸(字節(jié))。在大多數(shù)情況下,操作系統(tǒng)默認(rèn)的棧尺寸很合理,但是在某些情況下,需要調(diào)整這個值:

top

User 指令

說明實際服務(wù)于請求的子進(jìn)程運(yùn)行時的用戶
語法User unix-userid
默認(rèn)值User #-1
作用域server config
狀態(tài)MPM
模塊prefork, worker
兼容性2.0版本起僅在全局服務(wù)器配置中可用

User指令用于設(shè)置實際提供服務(wù)的子進(jìn)程的用戶。為了使用這個指令,服務(wù)器必須以root身份啟動和初始化。如果你以非root身份啟動服務(wù)器,子進(jìn)程將不能夠切換至非特權(quán)用戶,并繼續(xù)以啟動服務(wù)器的原始用戶身份運(yùn)行。如果確實以root用戶啟動了服務(wù)器,那么父進(jìn)程將仍然以root身份運(yùn)行。Unix-userid是下列值之一:

一個用戶名
通過用戶名引用用戶
"#"號后面跟一個用戶編號
通過用戶編號引用用戶

用于運(yùn)行子進(jìn)程的用戶必須是一個沒有特權(quán)的用戶,這樣才能保證子進(jìn)程無權(quán)訪問那些不想為外界所知的文件,同樣的,該用戶亦需沒有執(zhí)行那些不應(yīng)當(dāng)被外界執(zhí)行的程序的權(quán)限。強(qiáng)烈推薦你專門為Apache子進(jìn)程建立一個單獨(dú)的用戶和組。一些管理員使用nobody用戶,但是這并不能總是符合要求,因為可能有其他程序也在使用這個用戶。

安全

不要將User(或Group)設(shè)置成root ,除非你明確知道自己在做什么,并且明白其風(fēng)險所在。

特別提示:在<VirtualHost>段中使用該指令已經(jīng)不再被支持了。你可以使用suexecSuexecUserGroup指令來達(dá)到這個目的。

注意

雖然User指令也存在于beosmpmt_os2MPM中,但是事實上沒用任何用處,只不過是個擺飾罷了。