apahce 配置指令可以分為兩大塊,核心指令和第三方提供的指令。在apache中,每一個(gè)指令都對(duì)應(yīng)著一個(gè)模塊,而在所有模塊中,最重要的就是core_module,so_module,http_module,以及mpm模塊,他們除了so_moudle以外的其他模塊都不可以關(guān)掉或者禁止.
一:httpd.conf
(1) 主服務(wù)器部分
1 、ServerName: 定義apache默認(rèn)主機(jī)名,可以是域名或者IP地址
2 、ServerRoot: 用于定義服務(wù)器所在的目錄,這個(gè)路徑通常是在配置時(shí)候由–prefix來(lái)指定的
3 、DocumentRoot: 用于指定apache提供頁(yè)面服務(wù)的根目錄,這個(gè)路徑必須是絕對(duì)路徑而不是相對(duì)路徑,如果有空格還需要用引號(hào)括起來(lái)
4 、ServerAdmin: 服務(wù)器出錯(cuò)后給管理員發(fā)郵件的地址
5 、ServerAlias 和 Alias: 都用于映射目錄,只是ServerAlias將映射的目錄識(shí)別為CGI腳本目錄,并將此目錄所有文件都作為CGI腳本對(duì)待。但是Alias只是映射為一個(gè)普通的目錄
6 、User 和 Group: 用于定義用于運(yùn)行apache 子進(jìn)程的用戶和用戶組
7 、Listen: 用來(lái)定義監(jiān)聽(tīng)apache的端口號(hào)
8 、LoadModule 指令:用于加載模塊或者目標(biāo)文件 LoadModule cgi_module modules/mod_cgi.so_module
9、 ErrorDocument: 自義錯(cuò)誤頁(yè)面信息 ErrorDocument 500 “unknown error”? ErrorDocument 404? “/var/server/www/cgi-bin/missing_404.pl” ErrorDocument 402 http://www.nicky.com/error_402.html
10、 options : 決定在哪些目錄中使用那些特性,這些特性如下:
None: option 指令將不會(huì)起作用
ExecCGI: 允許當(dāng)前目錄下執(zhí)行CGI腳本
Includes: 允許使用SSI功能
IncludesNOEXEC: 允許使用SSI功能,但是exec cgi and exec cmd 功能禁用
Indexes: 開(kāi)起索引功能,比如一個(gè)請(qǐng)求到目錄URLz中沒(méi)有有DirectoryIndex 指令指定的索引文件,那么服務(wù)器會(huì)自動(dòng)返回一個(gè)請(qǐng)求目錄內(nèi)容列表
FollowSymLinks: 允許在當(dāng)前環(huán)境使用符號(hào)連接,但是在location 容器中會(huì)被忽略
All: 使用除MultiViews之外的所有特性,也是options的默認(rèn)參數(shù)
MultiViews: 用于啟動(dòng)mod_negotiations模塊提供的多重視圖功能
11 、ServerTokens: OS/Major/Full 影響報(bào)錯(cuò)頁(yè)腳信息的詳細(xì)程度,一般不建議使用
(2) 容器部分
1 、
? ? DirctoryIndex index.html?
如果載入則執(zhí)行
? ? DirctoryIndex index.html?
如果不載入則執(zhí)行
2
依據(jù)
LoadModule proxy_module modules/libproxy.so
3
Directory: 讓它封裝的指令在它的指定的目錄或者他的子目錄起作用,這個(gè)目錄必須是一個(gè)完整的路徑,當(dāng)然你也可以使用通配符* ?匹配目錄,也考慮利用使用[]來(lái)確定字符范圍,不過(guò)不論是哪一種都不能匹配/
? ? Order Deny,Allow
Deny from all
上述例子禁止了對(duì)/var/apache/html目錄的訪問(wèn)權(quán)限。任何請(qǐng)求到/var/apache/html都會(huì)被拒絕
如果希望目錄使用正則表達(dá)式,那么需要在前面加一個(gè)~
? ? Order Deny,Allow
Allow from all
DirectoryMatch: 和Directory作用類似,只不過(guò)他可以直接接受正則匹配 而不需要加一個(gè)~符號(hào)
? ? Order Deny,Allow
Allow from all
4
Files: 只作用于文件,也可以使用通配符和[]以及在正則表達(dá)式前面~來(lái)使用正則表達(dá)式
? ? Order Deny,Allow
Allow from All
FilesMatch: Files 而不需要加一個(gè)~符號(hào)
Order Deny,Allow
Allow from All
5
Order Allow,Deny
Deny from All
如果以cgi開(kāi)頭URL則會(huì)被拒絕
另外還可以將URL 請(qǐng)求映射到Apache模塊處理器上,例如使用mod_status模塊:
SetHandler server-status
如果使用上面的配置。那么訪問(wèn)/server-status,apache會(huì)將連接交給mod_status模塊處理,并返回一個(gè)Apache服務(wù)器運(yùn)行狀態(tài)頁(yè)面
容器的處理順序問(wèn)題:
Apache 會(huì)優(yōu)先處理Directory 容器(但是不會(huì)處理帶有正則表達(dá)式的Directory和.htaccess,)接著處理Files 和 FilesMatch 容器,再接著就是處理Location 和LocationMatch容器
? ? Order deny,allow
? ? Allow from All
? ? ?Order allow,deny
Allow from All
Deny from www.jons.com
上述例子,由于Apache會(huì)先處理