[zt]Apache httpd.conf中文說明

# 基於 NCSA 服務的配置文件。 

#這是Apache服務器主要配置文件。 
#它包含服務器的影響服務器運行的配置指令。 
#參見<URL:<a href="http://httpd.apache.org/docs-2.0/" target="_blank">;http://httpd.apache.org/docs-2.0/</a>;>;以取得關於這些指令的詳細信息 

#不要只是簡單的閱讀這些指令信息而不去理解它。 
#這裏只是做了簡單的說明,如果你沒有參考在線文件,你就會被警告。 

#這些配置指令被分爲下面三個部分: 
#1. 控制整個Apache服務器行爲的部分(即全局環境變量) 
#2. 定義主要或者默認服務參數的指令,也爲所有虛擬主機提供默認的設置參數 
#3. 虛擬主機的設置參數 

#配置和日誌文件名:如果你指定的文件名以“/”開始(win32下以“dirver:/”), 
#服務器將使用絕對路徑,如果文件名不是以“/”開始的,那麼它將把ServerRoot 
#的值附加在文件名的前面,例如,對“logs/foo.log",如果ServerRoot的值 
#爲“/usr/local/apache2”,則該文件應爲“/usr/local/apache2/logs/foo.log” 

##第一區:全局環境參數 

#這裏設置的參數將影響整個Apache服務器的行爲; 
#例如Apache能夠處理的併發請求的數量等。 

#ServerRoot:指出服務器保存其配置、出錯和日誌文件等的根目錄。 

#注意!如果你想要將它指定爲NFS或其它網絡上的位置, 
#請一定要去閱讀與LockFile有關的文檔(可能在 
#<URL:<a href="http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile" target="_blank">;http://httpd.apache.org/docs-2.0/mo...n.html#lockfile</a>;>; )。 
#這將會使你自己也能解決很多問題。 

#路徑的結尾不要添加斜線。 

ServerRoot "/usr/loacl/apache2" 

#串行訪問的鎖文件必須保存在本地磁盤上 

<IfModule !mpm_winnt.c>; 
<IfModule !mpm_neware.c>; 
#LockFile logs/accept.lock 

</IfModule>; 
</IfModule>; 
#ScoreBoardFile:用來保存內部服務進程信息的文件。 
#如果未指明(默認),記分板(scoreboard)將被保存在一個匿名的共享內存段中, 
#並且它不能被第三方軟件所使用。 
#如果指定了,要確保不能使用兩個Apache使用同一個記分板文件, 
#這個記分板文件必須保存在本地磁盤上。 

<IfModule !mpm_netware.c>; 
<IfModule !perchild.c>; 
#ScoreBoardFile logs/apache_runtime_status 
<IfModule>; 
<IfModule>; 

#PidFile:記錄服務器啓動進程號的文件。 

<IfModule !mpm_neware.c>; 
PidFile logs/httpd.pid 
</IfModule>; 

#Timeout:接收和發送前超時秒數 

Timeout 300 

#KeepAlive:是否允許穩固的連接(每個連接有多個請求), 
#設爲"Off"則停用。 

KeepAlive On 

#MaxKeepAliveRequests:在穩固連接期間允許的最大請求數, 
#設爲0表示無限制接入。 
#我們推薦你將其設爲一個較大的值,以便提高性能 
MaxKeepAliveRequests 100 

#KeepAliveTimeout:在同一個連接上從同一臺客戶上接收請求的秒數 

KeepAliveTimeout 15 
## 
##Server-Pool大小設定(針對MPM的) 
## 
# prefork MPM 
# StartServers:啓動時服務器啓動的進程數 
# MinSpareServers:保有的備用進程的最小數目 
# MaxSpareServers:保有的備用進程的最大數目 
# MaxClients:服務器允許啓動的最大進程數 
# MaxRequestsPerChild:一個服務進程允許的最大請求數 
<IfModule prefork.c>; 
StartServers 5 
MinSpareServers 5 
MaxSpareServers 10 
MaxClients 150 
MaxRequestPerChild 0 
</IfModule>; 
# worker MPM 
# StartServers:服務器啓動時的服務進程數目 
# MaxClients:允許同時連接的最大用戶數目 
# MinSpareThreads:保有的最小工作線程數目 
# MaxSpareThreads:允許保有的最大工作線程數目 
# ThreadsPerChild:每個服務進程中的工作線程常數 
# MaxRequestsPerChild:服務進程中允許的最大請求數目 
<IfModule worker.c>; 
StartServers 2 
MaxClients 150 
MinSpareThreads 25 
MaxSpareThreads 75 
ThreadsPerChild 25 
MaxRequestsPerChild 0 
</IfModule>; 
# perchild MPM 
# NumServers:服務進程數量 
# StartThreads:每個服務進程中的起始線程數量 
# MinSpareThreads:保有的最小線程數量 
# MaxSpareThreads:保有的最大線程數量 
# MaxThreadsPerChild:每個服務進程允許的最大線程數 
# MaxRequestsPerChild:每個服務進程允許連接的最大數量 
<IfModule perchild.c>; 
NumServers 5 
StartThreads 5 
MinSpareThreads 5 
MaxSpareThreads 10 
MaxThreadsPerChild 20 
MaxRequestsPerChild 0 
</IfModule>; 
# WinNT MPM 
# ThreadsPerChild:服務進程中工作線程常數 
# MaxRequestsPerChild:服務進程允許的最大請求數 
<IfModule mpm_winnt.c>; 
ThreadsPerChild 250 
MaxRequestsPerChild 0 
</IfModule>; 
# BeOS MPM 
# StartThreads:服務器啓動時啓動的線程數 
# MaxClients:可以啓動的最大線程數(一個線程等於一個用戶) 
# MaxRequestsPerThread:每個線程允許的最大請求數 
<IfModule beos.c>; 
StartThreads 10 
MaxClients 50 
MaxRequestsPerThread 10000 
</IfModule>; 
# NetWare MPM 
# ThreadStachSize:爲每個工作線程分配的堆棧尺寸 
# StartThreads:服務器啓動時啓動的線程數 
# MinSpareThreads:用於處理實發請求的空閒線程數 
# MaxSpareThreads:空閒線程的最大數量 
# MaxThreads:在同一時間活動的最大線程數 
# MaxRequestPerChild:一個線程服務請求的最大數量, 
# 推薦將其設置爲0,以實現無限制的接入 
<IfModule mpm_netware.c>; 
ThreadStackSize 65536 
StartThreads 250 
MinSpareThreads 25 
MaxSpareThreads 250 
MaxThreads 1000 
MaxRequestPerChild 0 
</IfModule>; 
# OS/2 MPM 
# StartServers:啓動的服務進程數量 
# MinSpareThreads:每個進程允許的最小空閒線程 
# MaxSpareThreads:每個進程允許的最大空閒線程 
# MaxRequestsPerChild:每個服務進程允許的最大連接數 
<IfModule mpmt_os2.c>; 
StartServers 2 
MinSpareThreads 5 
MaxSpareThreads 10 
MaxRequestsPerChild 0 
</IfModule>; 

# Listen:允許你綁定Apache服務到指定的IP地址和端口上,以取代默認值 
# 參見<VirtualHost>;指令 
# 使用如下命令使Apache只在指定的IP地址上監聽, 
# 以防止它在IP地址0.0.0.0上監聽 

# Listen 12.34.56.78:80 
Listen 80 

# 動態共享支持(DSO) 

# 爲了能夠使用那些以DSO模式編譯的模塊中的函數,你必須有相應的“LoadModule”行, 
# 因此,在這裏包含了這些指令,以便能在使用它之前激活。 
# 那些靜態編譯的模塊不需要在這裏列出 (即以“httpd -l”列出的模塊) 

# 示例: 
# LoadModule foo_module modules/mod_foo.so 


# ExtendedStatus:當調用“server-status”時,控制Apache是產生“全”狀態 
# 信息(ExtendedStatus On),還是產生基本信息(ExtendedStatus Off)。 
# 默認爲off 

# ExtendedStatus On 
### 第二區:“主”服務配置 

# 這一區建立被 “主” 服務器用的指令值,以迴應那些不被 <VirtualHost>; 
# 定義處理的任何請求。 
# 這些數值也提供默認值給後面定義的<VirtualHost>;容器。 
# 如果<VirtualHost>;中有定義,那麼這裏定義的指令值將被 
# <VirtualHost>;中的定義所覆蓋。 

<IfModule !mpm_winnt.c>; 
<IfModule !mpm_neware.c>; 

# 如果你想使httpd以另外的用戶或組來運行,你必須在開始時以root方式啓動 
# 然後再將它切換爲你想要使用的用戶或組。 

# User/Group:運行httpd的用戶和組 
# 在SCO (ODT3)上使用“User nouser”和“Group nogroup” 
# 在HPUX上,你可能不能以nobody身份使用共享內存,建議創建一個www用戶。 
# 注意一些核心(kernel)在組ID大於60000時拒絕setgid(Group)或semctl(IPC_SET), 
#節在這些系統上不要使用“Group #-1”。 

User nobody 
Group #-1 
</IfModule>; 
</IfModule>; 

# ServerAdmin:你的郵件地址,當發生問題時Apache將向你發出郵件。 
# 作爲一個出錯文檔,這個地址顯示在server-generated頁上, 
# 例如:[email][email protected][/email] 

ServerAdmin [email][email protected][/email] 

# ServerName指定Apache用於識別自身的名字和端口號。 
# 通常這個值是自動指定的,但是我們推薦你顯式的指定它以防止啓動時出錯 

# 如果你爲你的主機指定了一個無效的DNS名,server-generated重定向將不能工作。 
# 參見UseCanonicalName指令 

# 如果你的主機沒有註冊DNS名,在這裏鍵入它的IP地址 
# 無論如何,你必須使用它的IP地址來提供服務, 
# 這裏使用一種容易理解的方式重定向服務 
ServerName <a href="http://www.dalouis.com:80" target="_blank">;www.dalouis.com:80</a>; 

# UseCanonicalName:決定Apache如何構造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。 
# 當設置爲 “Off”時,Apache會使用用戶端提供的主機名和端口號。 
# 當設置爲“On”,Apache會使用ServerName指令的值。 

UseCanonicalName Off 

# DocumentRoot:你的文檔的根目錄。默認情況下,所有的請求從這個目錄進行應答。 
# 但是可以使用符號鏈接和別名來指向到其他的位置。 

DocumentRoot "/home/redhat/public_html" 

# Apache可以存取的每個目錄都可以配置存取權限(包括它的子目錄)。 

# 首先,我們配置一個高限制的特徵。 
# 這將禁止訪問文件系統所在的目錄,並添加你希望允許訪問的目錄塊。 
# 如下所示 
<Directory />; 
Order Deny,Allow 
Deny from all 
</Directory>; 

# 注意從這裏開始你一定要明確地允許哪些特別的特徵能夠被使用。 
# - 所以,如果Apache沒有象你所期待的那樣工作的話, 
# 請檢查你是否在下面明確的指定它可用。 


# 這將改變到你設置的DocumentRoot 

<Directory "/home/redhat/public_html">; 

# Options:這個指令的值可以是“None”,“All”,或者下列選項的任意組合: 
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 

# 注意,“MultiViews”必須被顯式的指定,“Options All”不能爲你提供這個特性。 

# 這個指令既複雜又重要,請參見 
#“<a href="http://httpd.apache.org/docs-2.0/mod/core.html#optioins”以取得更多的信息。" target="_blank">;http://httpd.apache.org/docs-2.0/mo...〉酶嗟男畔ⅰ?lt;/a>; 

Options FollowSymLinks 

# AllowOverride控制那些被放置在.htaccess文件中的指令。 
# 它可以是“All”,“None”,或者下列指令的組合: 
# Options FileInfo AuthConfig Limit 

AllowOverride None 

# 控制誰可以獲得服務。 

Order allow,deny 
Allow from all 
</Directory>; 

# UserDir:指定在得到一個~user請求時將會添加到用戶home目錄後的目錄名。 

UserDir public_html 
# 爲防止在UserDir指令上的漏洞,對root用戶設置 
# 象“./”這樣的UserDir是非常有用的。 
# 如果你使用Apache 1.3或以上版本,我們強烈建議你 
# 在你的服務器配置文件中包含下面的行 
UserDir disabled root 

# 下面是一個使用UserDir指令使一個站點的目錄具有隻讀屬性的示例: 

# <Directory /home/*/public_html>; 
# AllowOverride FileInfo AuthConfig Limit Indexes 
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec 
# <Limit GET POST OPTIONS PROPFIND>; 
# Order allow,deny 
# Allow from all 
# </Limit>; 
# <LimitExcept GET POST OPTIONS PROPFIND>; 
# Order deny,allow 
# Deny from all 
# </LimitExcept>; 
# </Directory>; 

# DirectoryIndex:定義請求是一個目錄時,Apache向用戶提供服務的文件名 

# index.html.var文件(一個類型映象文件)用於提供一個文檔處理列表, 
# 出於同樣的目的,也可以使用MultiViews選項,但是它會非常慢。 

DirectoryIndex index.php index.html index.html.var 

# AccessFileName:在每個目錄中查詢爲目錄提供附加配置指令的文件的文件名。 
# 參見AllowOverride指令。 

AccessFileName .htaccess 

# 下面的行防止.htaccess和.htpasswd文件被Web客戶查看。 

<Files ~ "^.ht">; 
Order allow,deny 
Deny from all 
</Files>; 

# Typeconfig:定義在哪裏查詢mime.types文件。 

TypeConfig conf/mime.types 

# DefaultType:定義當不能確定MIME類型時服務器提供的默認MIME類型。 
# 如果你的服務主要包含text或HTML文檔,“text/plain”是一個好的選擇; 
# 如果大多是二進制文檔,諸如軟件或圖像,你應使用 
# “application/octer-stream”來防止瀏覽器象顯示文本那樣顯示二進制文件。 

DefaultType text/plain 

# mod_mime_magic允許服務器從自己定義自己類型的文件中使用不同的線索(hints), 
# 這個MIMEMagicFile指令定義hints定義所在的文件。 

<IfModule mod_mime_magic.c>; 
MIMEMagicFile conf/magic 
</IfModule>; 

# HostnameLookups:指定記錄用戶端的名字還是IP地址,例如,本指令爲on時 
# 記錄主機名,如<a href="http://www.apache.org;爲off時記錄IP地址,204.62.129.132。" target="_blank">;www.apache.org;爲off時記錄IP地址,204.62.129.132。</a>; 
# 默認值爲off,這要比設爲on好得多,因爲如果設爲on則每個用戶端請求都將會 
# 至少造成對 nameserver 進行一次查詢。 

HostnameLookups Off 

# EnableMMAP:控制是否進行內存轉儲(如果操作系統支持的話)。 
# 默認爲on,如果你的服務器安裝在網絡文件系統上(NFS),請關閉它。 
# 在一些系統上,關閉它會提升系統性能(與文件系統類型無關); 
# 具體情況請參閱<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap" target="_blank">;http://httpd.apache.org/docs-2.0/mo...html#enablemmap</a>; 

# EnableMMAP off 

# EnableSendfile:控制是否使用sendfile kernel支持發送文件 
# (如果操作系統支持的話)。默認爲on,如果你的服務器安裝在網絡文件系統 
# (NFS)上,請你關閉它。 
# 參見<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile" target="_blank">;http://httpd.apache.org/docs-2.0/mo...#enablesendfile</a>; 

# EnableSendfile off 

# ErrorLog:錯誤日誌文件定位。 
# 如果你沒有在<VirtualHost>;內定義ErrorLog指令,這個虛擬主機的錯誤信息 
# 將記錄在這裏。如果你在那兒定義了ErrorLog,這些錯誤信息將記錄在你所 
# 定義的文件裏,而不是這兒定義的文件。 

ErrorLog logs/error_log 

# LogLevel:控制記錄在錯誤日誌文件中的日誌信息數量。 
# 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。 

LogLevel warn 

# 下面的指令爲CustomLog指令定義格式別名。 

LogFormat "%h %l %u %t /"%r/" %>;s %b /"%{Referer}i/" /"%{User-Agent}i/"" combined 
LogFormat "%h %l %u %t /"%r/" %>;s %b" common 
LogFormat "%{Referer}i ->; %U" referer 
LogFormat "%{User-agent}i" agent 
# 你需要安裝了mod_logio.c模塊才能使用%I和%O。 
# LogFormat "%h %l %u %t /"%r/" %>;s %b /"%{Referer}i/" /"%{User-Agent}i/" %I %O" combinedio 

# 指定接入日誌文件的定位和格式(一般日誌格式)。 
# 如果你沒有在<VirtualHost>;內定義這個指令,傳輸信息將記錄在這裏, 
# 如果你定義了這個指令,則記錄在你指定的位置,而不是這兒定義的位置。 

CustomLog logs/access_log common 

# 如果你想要記錄agent和referer信息,可以使用下面的指令 

# CustomLog logs/referer_log referer 
# CustomLog logs/agent_log agent 
#
# 如果你想要使用一個文件記錄access,agent和referer信息, 
# 你可以如下定義這個指令: 

# CustomLog logs/access_log combined 

# ServerTokens 
# 這個指令定義包含在HTTP迴應頭中的信息類型。默認爲“Full”, 
# 這表示在迴應頭中將包含模塊中的操作系統類型和編譯信息。 
# 可以設爲列各值中的一個: 
# Full | OS | Minor | Minimal | Major | Prod 
# Full傳達的信息最多,而Prod最少。 

ServerTokens Full 

# 隨意的添加包含服務器版本和虛擬主機名字一行信息到server-generated輸出頁中 
# (內部錯誤文檔,FTP目錄列表,mod_status和mod_info輸出等等,除了CGI錯誤 
# 或自定義的錯誤文檔以外)。 
# 設爲“EMail”將包含一個指向ServerAdmin的mailto:連接。 
# 可以爲如下值:On | Off | EMail 

ServerSignature On 

# Aliases:在這時添加你需要的別名,格式如下: 
# Alias 別名 真實名 

# 注意,如果你在別名的未尾包含了“/”,那麼在URL中也需要包含“/”。 
# 因此,“/icons”不是這個示例中的別名。 
# 如果別名中以“/”結尾,那麼真實名也必須以“/”結尾, 
# 如果別名中省略了結尾的“/”,那麼真實名也必須省略。 

# 我們使用別名“/icons/”來表示FancyIndexed目錄列表,如果你不使用、 
# FancyIndexing,你可以註釋掉它。 

# Alias /icons/ "/usr/local/apache2/icons/" 
# <Directory "/usr/local/apache2/icons">; 
# Options Indexes MultiViews 
# AllowOverride None 
# Order allow,deny 
## Allow from all 
# </Directory>; 

# 這將改變ServerRoot/manual。這個別名提供了手冊頁所在的位置, 
# 即使你改變了你的DocumentRoot。如果你對有無手冊頁並不在意的話, 
# 你可以註釋掉它。 

Alias /manual "/usr/loacl/apache2/manual" 
<Directory "/usr/local/apache2/manual">; 
Options Indexes FollowSymLinks MultiViews IncludesNoExec 
AddOutputFilter Includes html 
Order allow,deny 
Allow from all 
</Directory>; 

# ScriptAlias:指定包含服務腳本的目錄。 
# ScriptAliases 本質上與Aliases一樣,除了這裏的文檔在請求時做爲程序處理處理以外。 
# 尾部的“/”規則與Alias一樣 

ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/" 
# 這裏是添加php 4支持的指令 
AddType application/x-httpd-php .php 
LoadModule php4_module modules/libphp4.so 
<IfModule mod_cgid.c>; 

# 添加mod_cgid.c設置,mod_cgid提供使用cgid進行通訊的UNIX套接字的 
# 腳本接口路徑。 

# Scriptsock logs/cgisock 
</IfModule>; 

# 將"/usr/local/apache2/cgi-bin"改爲你的ScriptAliased指定的CGI目錄, 
# 如果你配置了的話。 

<Directory "/usr/local/apache2/cgi-bin">; 
AllowOverride None 
Options None 
Order allow,deny 
Allow from all 
</Directory>; 

# Redirect允許你告訴客戶端使用存在於服務器名字空間中的文檔, 
# 而不是現在的,這幫助客戶定位那些改變了位置的文檔。 
# 例如: 
# Redirect permanent /foo <a href="http://www.example.com/bar" target="_blank">;http://www.example.com/bar</a>; 

# 控制server-generated目錄列表顯示的指令 


# IndexOptions:控制server-generated目錄列表顯示特徵。 

IndexOptions FancyIndexing VersionSort 

# AddIcon* 指令告訴服務器不同擴展名的圖象文件如何顯示, 
# 只適用於FancyIndexed指令 

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip 
AddIconByType (TXT,/icons/text.gif) text
# 基於 NCSA 服務的配置文件。 

#這是Apache服務器主要配置文件。 
#它包含服務器的影響服務器運行的配置指令。 
#參見<URL:<a href="http://httpd.ache.org/doc-2.0/" target="_blank">;http://httpd.ache.org/doc-2.0/</a>;>;以取得關於這些指令的詳細信息 

#不要只是簡單的閱讀這些指令信息而不去理解它。 
#這裏只是做了簡單的說明,如果你沒有參考在線文件,你就會被警告。 

#這些配置指令被分爲下面三個部分: 
#1. 控制整個Apache服務器行爲的部分(即全局環境變量) 
#2. 定義主要或者默認服務參數的指令,也爲所有虛擬主機提供默認的設置參數 
#3. 虛擬主機的設置參數 

#配置和日誌文件名:如果你指定的文件名以“/”開始(win32下以“dirver:/”), 
#服務器將使用絕對路徑,如果文件名不是以“/”開始的,那麼它將把ServerRoot 
#的值附加在文件名的前面,例如,對“logs/foo.log",如果ServerRoot的值 
#爲“/usr/local/apache2”,則該文件應爲“/usr/local/apache2/logs/foo.log” 

##第一區:全局環境參數 

#這裏設置的參數將影響整個Apache服務器的行爲; 
#例如Apache能夠處理的併發請求的數量等。 

#ServerRoot:指出服務器保存其配置、出錯和日誌文件等的根目錄。 

#注意!如果你想要將它指定爲NFS或其它網絡上的位置, 
#請一定要去閱讀與LockFile有關的文檔(可能在 
#<URL:<a href="http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile" target="_blank">;http://httpd.apache.org/docs-2.0/mo...n.html#lockfile</a>;>; )。 
#這將會使你自己也能解決很多問題。 

#路徑的結尾不要添加斜線。 

ServerRoot "/usr/loacl/apache2" 

#串行訪問的鎖文件必須保存在本地磁盤上 

<IfModule !mpm_winnt.c>; 
<IfModule !mpm_neware.c>; 
#LockFile logs/accept.lock 
</IfModule>; 
</IfModule>; 
#ScoreBoardFile:用來保存內部服務進程信息的文件。 
#如果未指明(默認),記分板(scoreboard)將被保存在一個匿名的共享內存段中, 
#並且它不能被第三方軟件所使用。 
#如果指定了,要確保不能使用兩個Apache使用同一個記分板文件, 
#這個記分板文件必須保存在本地磁盤上。 

<IfModule !mpm_netware.c>; 
<IfModule !perchild.c>; 
#ScoreBoardFile logs/apache_runtime_status 
<IfModule>; 
<IfModule>; 

#PidFile:記錄服務器啓動進程號的文件。 

<IfModule !mpm_neware.c>; 
PidFile logs/httpd.pid 
</IfModule>; 

#Timeout:接收和發送前超時秒數 

Timeout 300 

#KeepAlive:是否允許穩固的連接(每個連接有多個請求), 
#設爲"Off"則停用。 

KeepAlive On 

#MaxKeepAliveRequests:在穩固連接期間允許的最大請求數, 
#設爲0表示無限制接入。 
#我們推薦你將其設爲一個較大的值,以便提高性能 
MaxKeepAliveRequests 100 

#KeepAliveTimeout:在同一個連接上從同一臺客戶上接收請求的秒數 

KeepAliveTimeout 15 
## 
##Server-Pool大小設定(針對MPM的) 
## 
# prefork MPM 
# StartServers:啓動時服務器啓動的進程數 
# MinSpareServers:保有的備用進程的最小數目 
# MaxSpareServers:保有的備用進程的最大數目 
# MaxClients:服務器允許啓動的最大進程數 
# MaxRequestsPerChild:一個服務進程允許的最大請求數 
<IfModule prefork.c>; 
StartServers 5 
MinSpareServers 5 
MaxSpareServers 10 
MaxClients 150 
MaxRequestPerChild 0 
</IfModule>; 
# worker MPM 
# StartServers:服務器啓動時的服務進程數目 
# MaxClients:允許同時連接的最大用戶數目 
# MinSpareThreads:保有的最小工作線程數目 
# MaxSpareThreads:允許保有的最大工作線程數目 
# ThreadsPerChild:每個服務進程中的工作線程常數 
# MaxRequestsPerChild:服務進程中允許的最大請求數目 
<IfModule worker.c>; 
StartServers 2 
MaxClients 150 
MinSpareThreads 25 
MaxSpareThreads 75 
ThreadsPerChild 25 
MaxRequestsPerChild 0 
</IfModule>; 
# perchild MPM 
# NumServers:服務進程數量 
# StartThreads:每個服務進程中的起始線程數量 
# MinSpareThreads:保有的最小線程數量 
# MaxSpareThreads:保有的最大線程數量 
# MaxThreadsPerChild:每個服務進程允許的最大線程數 
# MaxRequestsPerChild:每個服務進程允許連接的最大數量 
<IfModule perchild.c>; 
NumServers 5 
StartThreads 5 
MinSpareThreads 5 
MaxSpareThreads 10 
MaxThreadsPerChild 20 
MaxRequestsPerChild 0 
</IfModule>; 
# WinNT MPM 
# ThreadsPerChild:服務進程中工作線程常數 
# MaxRequestsPerChild:服務進程允許的最大請求數 
<IfModule mpm_winnt.c>; 
ThreadsPerChild 250 
MaxRequestsPerChild 0 
</IfModule>; 
# BeOS MPM 
# StartThreads:服務器啓動時啓動的線程數 
# MaxClients:可以啓動的最大線程數(一個線程等於一個用戶) 
# MaxRequestsPerThread:每個線程允許的最大請求數 
<IfModule beos.c>; 
StartThreads 10 
MaxClients 50 
MaxRequestsPerThread 10000 
</IfModule>; 
# NetWare MPM 
# ThreadStachSize:爲每個工作線程分配的堆棧尺寸 
# StartThreads:服務器啓動時啓動的線程數 
# MinSpareThreads:用於處理實發請求的空閒線程數 
# MaxSpareThreads:空閒線程的最大數量 
# MaxThreads:在同一時間活動的最大線程數 
# MaxRequestPerChild:一個線程服務請求的最大數量, 
# 推薦將其設置爲0,以實現無限制的接入 
<IfModule mpm_netware.c>; 
ThreadStackSize 65536 
StartThreads 250 
MinSpareThreads 25 
MaxSpareThreads 250 
MaxThreads 1000 
MaxRequestPerChild 0 
</IfModule>; 
# OS/2 MPM 
# StartServers:啓動的服務進程數量 
# MinSpareThreads:每個進程允許的最小空閒線程 
# MaxSpareThreads:每個進程允許的最大空閒線程 
# MaxRequestsPerChild:每個服務進程允許的最大連接數 
<IfModule mpmt_os2.c>; 
StartServers 2 
MinSpareThreads 5 
MaxSpareThreads 10 
MaxRequestsPerChild 0 
</IfModule>; 

# Listen:允許你綁定Apache服務到指定的IP地址和端口上,以取代默認值 
# 參見<VirtualHost>;指令 
# 使用如下命令使Apache只在指定的IP地址上監聽, 
# 以防止它在IP地址0.0.0.0上監聽 

# Listen 12.34.56.78:80 
Listen 80 

# 動態共享支持(DSO) 

# 爲了能夠使用那些以DSO模式編譯的模塊中的函數,你必須有相應的“LoadModule”行, 
# 因此,在這裏包含了這些指令,以便能在使用它之前激活。 
# 那些靜態編譯的模塊不需要在這裏列出 (即以“httpd -l”列出的模塊) 

# 示例: 
# LoadModule foo_module modules/mod_foo.so 


# ExtendedStatus:當調用“server-status”時,控制Apache是產生“全”狀態 
# 信息(ExtendedStatus On),還是產生基本信息(ExtendedStatus Off)。 
# 默認爲off 

# ExtendedStatus On 
### 第二區:“主”服務配置 

# 這一區建立被 “主” 服務器用的指令值,以迴應那些不被 <VirtualHost>; 
# 定義處理的任何請求。 
# 這些數值也提供默認值給後面定義的<VirtualHost>;容器。 
# 如果<VirtualHost>;中有定義,那麼這裏定義的指令值將被 
# <VirtualHost>;中的定義所覆蓋。 

<IfModule !mpm_winnt.c>; 
<IfModule !mpm_neware.c>; 

# 如果你想使httpd以另外的用戶或組來運行,你必須在開始時以root方式啓動 
# 然後再將它切換爲你想要使用的用戶或組。 

# User/Group:運行httpd的用戶和組 
# 在SCO (ODT3)上使用“User nouser”和“Group nogroup” 
# 在HPUX上,你可能不能以nobody身份使用共享內存,建議創建一個www用戶。 
# 注意一些核心(kernel)在組ID大於60000時拒絕setgid(Group)或semctl(IPC_SET), 
#節在這些系統上不要使用“Group #-1”。 

User nobody 
Group #-1 
</IfModule>; 
</IfModule>; 

# ServerAdmin:你的郵件地址,當發生問題時Apache將向你發出郵件。 
# 作爲一個出錯文檔,這個地址顯示在server-generated頁上, 
# 例如:[email][email protected][/email] 

ServerAdmin [email][email protected][/email] 

# ServerName指定Apache用於識別自身的名字和端口號。 
# 通常這個值是自動指定的,但是我們推薦你顯式的指定它以防止啓動時出錯 

# 如果你爲你的主機指定了一個無效的DNS名,server-generated重定向將不能工作。 
# 參見UseCanonicalName指令 

# 如果你的主機沒有註冊DNS名,在這裏鍵入它的IP地址 
# 無論如何,你必須使用它的IP地址來提供服務, 
# 這裏使用一種容易理解的方式重定向服務 
ServerName <a href="http://www.dalouis.com:80" target="_blank">;www.dalouis.com:80</a>; 

# UseCanonicalName:決定Apache如何構造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。 
# 當設置爲 “Off”時,Apache會使用用戶端提供的主機名和端口號。 
# 當設置爲“On”,Apache會使用ServerName指令的值。 

UseCanonicalName Off 

# DocumentRoot:你的文檔的根目錄。默認情況下,所有的請求從這個目錄進行應答。 
# 但是可以使用符號鏈接和別名來指向到其他的位置。 

DocumentRoot "/home/redhat/public_html" 

# Apache可以存取的每個目錄都可以配置存取權限(包括它的子目錄)。 

# 首先,我們配置一個高限制的特徵。 
# 這將禁止訪問文件系統所在的目錄,並添加你希望允許訪問的目錄塊。 
# 如下所示 
<Directory />; 
Order Deny,Allow 
Deny from all 
</Directory>; 

# 注意從這裏開始你一定要明確地允許哪些特別的特徵能夠被使用。 
# - 所以,如果Apache沒有象你所期待的那樣工作的話, 
# 請檢查你是否在下面明確的指定它可用。 


# 這將改變到你設置的DocumentRoot 

<Directory "/home/redhat/public_html">; 

# Options:這個指令的值可以是“None”,“All”,或者下列選項的任意組合: 
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 

# 注意,“MultiViews”必須被顯式的指定,“Options All”不能爲你提供這個特性。 

# 這個指令既複雜又重要,請參見 
#“<a href="http://httpd.apache.org/docs-2.0/mod/core.html#optioins”以取得更多的信息。" target="_blank">;http://httpd.apache.org/docs-2.0/mo...〉酶嗟男畔ⅰ?lt;/a>; 

Options FollowSymLinks 

# AllowOverride控制那些被放置在.htaccess文件中的指令。 
# 它可以是“All”,“None”,或者下列指令的組合: 
# Options FileInfo AuthConfig Limit 

AllowOverride None 

# 控制誰可以獲得服務。 

Order allow,deny 
Allow from all 
</Directory>; 

# UserDir:指定在得到一個~user請求時將會添加到用戶home目錄後的目錄名。 

UserDir public_html 
# 爲防止在UserDir指令上的漏洞,對root用戶設置 
# 象“./”這樣的UserDir是非常有用的。 
# 如果你使用Apache 1.3或以上版本,我們強烈建議你 
# 在你的服務器配置文件中包含下面的行 
UserDir disabled root 

# 下面是一個使用UserDir指令使一個站點的目錄具有隻讀屬性的示例: 

# <Directory /home/*/public_html>; 
# AllowOverride FileInfo AuthConfig Limit Indexes 
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec 
# <Limit GET POST OPTIONS PROPFIND>; 
# Order allow,deny 
# Allow from all 
# </Limit>; 
# <LimitExcept GET POST OPTIONS PROPFIND>; 
# Order deny,allow 
# Deny from all 
# </LimitExcept>; 
# </Directory>; 

# DirectoryIndex:定義請求是一個目錄時,Apache向用戶提供服務的文件名 

# index.html.var文件(一個類型映象文件)用於提供一個文檔處理列表, 
# 出於同樣的目的,也可以使用MultiViews選項,但是它會非常慢。 

DirectoryIndex index.php index.html index.html.var 

# AccessFileName:在每個目錄中查詢爲目錄提供附加配置指令的文件的文件名。 
# 參見AllowOverride指令。 

AccessFileName .htaccess 

# 下面的行防止.htaccess和.htpasswd文件被Web客戶查看。 

<Files ~ "^.ht">; 
Order allow,deny 
Deny from all 
</Files>; 

# Typeconfig:定義在哪裏查詢mime.types文件。 

TypeConfig conf/mime.types 

# DefaultType:定義當不能確定MIME類型時服務器提供的默認MIME類型。 
# 如果你的服務主要包含text或HTML文檔,“text/plain”是一個好的選擇; 
# 如果大多是二進制文檔,諸如軟件或圖像,你應使用 
# “application/octer-stream”來防止瀏覽器象顯示文本那樣顯示二進制文件。 

DefaultType text/plain 

# mod_mime_magic允許服務器從自己定義自己類型的文件中使用不同的線索(hints), 
# 這個MIMEMagicFile指令定義hints定義所在的文件。 

<IfModule mod_mime_magic.c>; 
MIMEMagicFile conf/magic 
</IfModule>; 

# HostnameLookups:指定記錄用戶端的名字還是IP地址,例如,本指令爲on時 
# 記錄主機名,如<a href="http://www.apache.org;爲off時記錄IP地址,204.62.129.132。" target="_blank">;www.apache.org;爲off時記錄IP地址,204.62.129.132。</a>; 
# 默認值爲off,這要比設爲on好得多,因爲如果設爲on則每個用戶端請求都將會 
# 至少造成對 nameserver 進行一次查詢。 

HostnameLookups Off 

# EnableMMAP:控制是否進行內存轉儲(如果操作系統支持的話)。 
# 默認爲on,如果你的服務器安裝在網絡文件系統上(NFS),請關閉它。 
# 在一些系統上,關閉它會提升系統性能(與文件系統類型無關); 
# 具體情況請參閱<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap" target="_blank">;http://httpd.apache.org/docs-2.0/mo...html#enablemmap</a>; 

# EnableMMAP off 

# EnableSendfile:控制是否使用sendfile kernel支持發送文件 
# (如果操作系統支持的話)。默認爲on,如果你的服務器安裝在網絡文件系統 
# (NFS)上,請你關閉它。 
# 參見<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile" target="_blank">;http://httpd.apache.org/docs-2.0/mo...#enablesendfile</a>; 

# EnableSendfile off 

# ErrorLog:錯誤日誌文件定位。 
# 如果你沒有在<VirtualHost>;內定義ErrorLog指令,這個虛擬主機的錯誤信息 
# 將記錄在這裏。如果你在那兒定義了ErrorLog,這些錯誤信息將記錄在你所 
# 定義的文件裏,而不是這兒定義的文件。 

ErrorLog logs/error_log 

# LogLevel:控制記錄在錯誤日誌文件中的日誌信息數量。 
# 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。 

LogLevel warn 

# 下面的指令爲CustomLog指令定義格式別名。 

LogFormat "%h %l %u %t /"%r/" %>;s %b /"%{Referer}i/" /"%{User-Agent}i/"" combined 
LogFormat "%h %l %u %t /"%r/" %>;s %b" common 
LogFormat "%{Referer}i ->; %U" referer 
LogFormat "%{User-agent}i" agent 
# 你需要安裝了mod_logio.c模塊才能使用%I和%O。 
# LogFormat "%h %l %u %t /"%r/" %>;s %b /"%{Referer}i/" /"%{User-Agent}i/" %I %O" combinedio 

# 指定接入日誌文件的定位和格式(一般日誌格式)。 
# 如果你沒有在<VirtualHost>;內定義這個指令,傳輸信息將記錄在這裏, 
# 如果你定義了這個指令,則記錄在你指定的位置,而不是這兒定義的位置。 

CustomLog logs/access_log common 

# 如果你想要記錄agent和referer信息,可以使用下面的指令 

# CustomLog logs/referer_log referer 
# CustomLog logs/agent_log agent 

# 如果你想要使用一個文件記錄access,agent和referer信息, 
# 你可以如下定義這個指令: 

# CustomLog logs/access_log combined 

# ServerTokens 
# 這個指令定義包含在HTTP迴應頭中的信息類型。默認爲“Full”, 
# 這表示在迴應頭中將包含模塊中的操作系統類型和編譯信息。 
# 可以設爲列各值中的一個: 
# Full | OS | Minor | Minimal | Major | Prod 
# Full傳達的信息最多,而Prod最少。 

ServerTokens Full 

# 隨意的添加包含服務器版本和虛擬主機名字一行信息到server-generated輸出頁中 
# (內部錯誤文檔,FTP目錄列表,mod_status和mod_info輸出等等,除了CGI錯誤 
# 或自定義的錯誤文檔以外)。 
# 設爲“EMail”將包含一個指向ServerAdmin的mailto:連接。 
# 可以爲如下值:On | Off | EMail 

ServerSignature On 

# Aliases:在這時添加你需要的別名,格式如下: 
# Alias 別名 真實名 

# 注意,如果你在別名的未尾包含了“/”,那麼在URL中也需要包含“/”。 
# 因此,“/icons”不是這個示例中的別名。 
# 如果別名中以“/”結尾,那麼真實名也必須以“/”結尾, 
# 如果別名中省略了結尾的“/”,那麼真實名也必須省略。 

# 我們使用別名“/icons/”來表示FancyIndexed目錄列表,如果你不使用、 
# FancyIndexing,你可以註釋掉它。 

# Alias /icons/ "/usr/local/apache2/icons/" 
# <Directory "/usr/local/apache2/icons">; 
# Options Indexes MultiViews 
# AllowOverride None 
# Order allow,deny 
## Allow from all 
# </Directory>; 

# 這將改變ServerRoot/manual。這個別名提供了手冊頁所在的位置, 
# 即使你改變了你的DocumentRoot。如果你對有無手冊頁並不在意的話, 
# 你可以註釋掉它。 

Alias /manual "/usr/loacl/apache2/manual" 
<Directory "/usr/local/apache2/manual">; 
Options Indexes FollowSymLinks MultiViews IncludesNoExec 
AddOutputFilter Includes html 
Order allow,deny 
Allow from all 
</Directory>; 

# ScriptAlias:指定包含服務腳本的目錄。 
# ScriptAliases 本質上與Aliases一樣,除了這裏的文檔在請求時做爲程序處理處理以外。 
# 尾部的“/”規則與Alias一樣 

ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/" 
# 這裏是添加php 4支持的指令 
AddType application/x-httpd-php .php 
LoadModule php4_module modules/libphp4.so 
<IfModule mod_cgid.c>; 

# 添加mod_cgid.c設置,mod_cgid提供使用cgid進行通訊的UNIX套接字的 
# 腳本接口路徑。 

# Scriptsock logs/cgisock 
</IfModule>; 

# 將"/usr/local/apache2/cgi-bin"改爲你的ScriptAliased指定的CGI目錄, 
# 如果你配置了的話。 

<Directory "/usr/local/apache2/cgi-bin">; 
AllowOverride None 
Options None 

Order allow,deny 
Allow from all 
</Directory>; 

# Redirect允許你告訴客戶端使用存在於服務器名字空間中的文檔, 
# 而不是現在的,這幫助客戶定位那些改變了位置的文檔。 
# 例如: 
# Redirect permanent /foo <a href="http://www.example.com/bar" target="_blank">;http://www.example.com/bar</a>; 

# 控制server-generated目錄列表顯示的指令 


# IndexOptions:控制server-generated目錄列表顯示特徵。 

IndexOptions FancyIndexing VersionSort 

# AddIcon* 指令告訴服務器不同擴展名的圖象文件如何顯示, 
# 只適用於FancyIndexed指令 

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip 
AddIconByType (TXT,/icons/text.gif) text

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章