第七章httpd.conf主配置文件的详解
?版本V1.0
時間2012-10-04
版權GPL
作者itnihao?郵箱?itnihao@qq.com
博客?http://itnihao.blog.51cto.com
如需重新發行,請注明以上信息,謝謝合作
前言
本文檔基于對apache的學習整理而成的筆記。本文檔詳細的記錄了apache各種應用,以及一些個人的理解,如果偏差,請和我聯系,以在下一個版本中進行更正。其中大部分文檔均來自網絡,感謝網絡上各位朋友的分享,才有此文檔的出現。其中本人對參考的部分網絡文檔進行適當的修改,以達到更好的參考效果。也希望各位積極的分享文檔,為開源事業做出自己力所能及的貢獻。
?????????????????????????????????????????????itnihao??2012年10月04日于成都
第七章httpd.conf主配置文件的詳解
注意:以下的配置文件融合了rpm包安裝和源碼安裝的配置文件,2種安裝方式的文件配置稍有不同。
#參見<URL:http://httpd.ache.org/doc-2.0/>以取得關于這些指令的詳細信息
#不要只是簡單的閱讀這些指令信息而不去理解它。
#這里只是做了簡單的說明,如果你沒有參考在線文件,你就會被警告。
#
#這些配置指令被分為下面三個部分:
#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:http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile>)。
#這將會使你自己也能解決很多問題。
#
#路徑的結尾不要添加斜線。
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?nobody
</IfModule>
</IfModule>
#
#?ServerAdmin:你的郵件地址,當發生問題時Apache將向你發出郵件。
#?作為一個出錯文檔,這個地址顯示在server-generated頁上,
#?例如:admin@your-domain.com
#
ServerAdmin?itnihao@qq.com
#?ServerName指定Apache用于識別自身的名字和端口號。
#?通常這個值是自動指定的,但是我們推薦你顯式的指定它以防止啟動時出錯
#?如果你為你的主機指定了一個無效的DNS名,server-generated重定向將不能工作。
#?參見UseCanonicalName指令
#?如果你的主機沒有注冊DNS名,在這里鍵入它的IP地址
#?無論如何,你必須使用它的IP地址來提供服務,
#?這里使用一種容易理解的方式重定向服務
ServerName?www.test.com:80
博文超過8萬字,剩余部分見附件
總結
以上是生活随笔為你收集整理的第七章httpd.conf主配置文件的详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学之美 系列一 -- 统计语言模型
- 下一篇: 让知识不能被忘记