主站點的配置(基本配置)
(1) 基本配置:
serverroot "/mnt/software/apache2" #你的apache軟件安裝的位置。其它指定的目錄如果沒有指定絕對路徑,則目錄是相對于該目錄。
pidfile logs/httpd.pid #第一個httpd進程(所有其他進程的父進程)的進程號文件位置。
listen 80 #服務器監聽的端口號。
servername www.111cn.net:80 #主站點名稱(網站的主機名)。
serveradmin [email protected] #管理員的郵件地址。
documentroot "/mnt/web/clusting" #主站點的網頁存儲位置。
以下是對主站點的目錄進行訪問控制:
"/mnt/web/clusting"> - options followsymlinks
- allowoverride none
- order allow,deny
- allow from all
在上面這段目錄屬性配置中,主要有下面的選項:
options:配置在特定目錄使用哪些特性,常用的值和基本含義如下:
execcgi: 在該目錄下允許執行cgi腳本。
followsymlinks: 在該目錄下允許文件系統使用符號連接。
indexes: 當用戶訪問該目錄時,如果用戶找不到directoryindex指定的主頁文件(例如index.html),則返回該目錄下的文件列表給用戶。
symlinksifownermatch: 當使用符號連接時,只有當符號連接的文件擁有者與實際文件的擁有者相同時才可以訪問。
allowoverride:允許存在于.htaccess文件中的指令類型(.htaccess文件名是可以改變的,其文件名由accessfilename指令決定):
none: 當allowoverride被設置為none時。不搜索該目錄下的.htaccess文件(可以減小服務器開銷)。
all: 在.htaccess文件中可以使用所有的指令。
其他的可用值及含義(如:options fileinfo authconfig limit等),請參看: http://www.111cn.net/apache/apachemanual/mod/core.html#allowoverride
order:控制在訪問時allow和deny兩個訪問規則哪個優先:
allow:允許訪問的主機列表(可用域名或子網,例如:allow from 192.168.0.0/16)。
deny:拒絕訪問的主機列表。
apache2主要的優勢就是對多處理器的支持更好,在編譯時同過使用--with-mpm選項來決定apache2的工作模式。如果知道當前的apache2使用什么工作機制,可以通過httpd -l命令列出apache的所有模塊,就可以知道其工作方式:
prefork:如果httpd -l列出prefork.c,則需要對下面的段進行配置:
- startservers 5 #啟動apache時啟動的httpd進程個數。
- minspareservers 5 #服務器保持的最小空閑進程數。
- maxspareservers 10 #服務器保持的最大空閑進程數。
- maxclients 150 #最大并發連接數。
- maxrequestsperchild 1000 #每個子進程被請求服務多少次后被kill掉。0表示不限制,推薦設置為1000。
在該工作模式下,服務器啟動后起動5個httpd進程(加父進程共6個,通過ps教程 -ax|grep httpd命令可以看到)。當有用戶連接時,apache會使用一個空閑進程為該連接服務,同時父進程會fork一個子進程。直到內存中的空閑進程達到maxspareservers。該模式是為了兼容一些舊版本的程序。我缺省編譯時的選項。
worker:如果httpd -l列出worker.c,則需要對下面的段進行配置:
- startservers 2 #啟動apache時啟動的httpd進程個數。
- maxclients 150 #最大并發連接數。
- minsparethreads 25 #服務器保持的最小空閑線程數。
- maxsparethreads 75 #服務器保持的最大空閑線程數。
- threadsperchild 25 #每個子進程的產生的線程數。
- maxrequestsperchild 0 #每個子進程被請求服務多少次后被kill掉。0表示不限制,推薦設置為1000。
該模式是由線程來監聽客戶的連接。當有新客戶連接時,由其中的一個空閑線程接受連接。服務器在啟動時啟動兩個進程,每個進程產生的線程數是固定的(threadsperchild決定),因此啟動時有50個線程。當50個線程不夠用時,服務器自動fork一個進程,再產生25個線程。
perchild:如果httpd -l列出perchild.c,則需要對下面的段進行配置:
- numservers 5 #服務器啟動時啟動的子進程數
- startthreads 5 #每個子進程啟動時啟動的線程數
- minsparethreads 5 #內存中的最小空閑線程數
- maxsparethreads 10 #最大空閑線程數
- maxthreadsperchild 2000 #每個線程最多被請求多少次后退出。0不受限制。
- maxrequestsperchild 10000 #每個子進程服務多少次后被重新fork。0表示不受限制。
該模式下,子進程的數量是固定的,線程數不受限制。當客戶端連接到服務器時,又空閑的線程提供服務。 如果空閑線程數不夠,子進程自動產生線程來為新的連接服務。該模式用于多站點服務器。
servertokens prod #該參數設置http頭部返回的apache版本信息,可用的值和含義如下:
prod:僅軟件名稱,例如:apache
major:包括主版本號,例如:apache/2
minor:包括次版本號,例如:apache/2.0
min:僅apache的完整版本號,例如:apache/2.0.54
os:包括操作系統類型,例如:apache/2.0.54(unix)
full:包括apache支持的模塊及模塊版本號,例如:apache/2.0.54 (unix) mod_ssl/2.0.54 openssl/0.9.7g
serversignature off #在頁面產生錯誤時是否出現服務器版本信息。推薦設置為off
|
新聞熱點
疑難解答