作者:王波 OSO奧索
通常連接配接時,伺服器僅僅可以得到客戶機的IP位址,如果要想獲得客戶機的
主機名,以進行日志記錄和提供給 CGI程式使用,就需要使用這個HostnameLookups 選項,将其設定為On打開DNS反查功能。但是這将使伺服器對每次客戶請求都進行DNS查詢,增加了系統開銷,使得反應變慢,是以預設設定為使用Off關閉此選項。關閉選項之後,伺服器就不會獲得客戶機的主機名,而隻能使用IP位址來記錄客戶。
ErrorLog /var/log/httpd-error.log
LogLevel warn
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent} "" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
#CustomLog /var/log/httpd-access.log common
#CustomLog /var/log/httpd-referer.log referer
#CustomLog /var/log/httpd-agent.log agent
CustomLog /var/log/httpd-access.log combined
這裡定義了系統日志的形式,對于伺服器錯誤記錄, 由ErrorLog、 LogLevel 來定義不同的錯誤日志檔案及其記錄内容。
對于系統的通路日志,預設使用CustomLog參數定義日志的位置,預設使用 combined 參數指定将所有的通路日志放在一個檔案中,然而也可以将不同種類的通路日志放在不同的日志記錄檔案中,這是通過在 CustomLog中指定不同的記錄類型來完成的。common表示普通的對單頁面請求通路記錄,referer表示每個頁面的引用記錄,可以看出一個頁面中包含的請求數,agent表示對客戶機的類型記錄,顯然可以将現有的combined 定義的設定行注釋掉,并使用common、referer和agent作為CustomLog的參數,來為不同種類的日志分别指定日志記錄檔案。
顯然,LogFormat是用于定義不同類型的日志進行記錄時使用的格式, 這裡
使用了以%開頭的宏定義,以記錄不同的内容。
如果這些參數指定的檔案使用的是相對路徑,那麼就是相對于ServerRoot的
路徑。
ServerSignature On
一些情況下,例如當客戶請求的網頁并不存在時,伺服器将産生錯誤文檔,
預設情況下由于打開了 ServerSignature選項,錯誤文檔的最後一行将包含伺服器的名字、Apache的版本等資訊。有的管理者更傾向于不對外顯示這些資訊,就
可以将這個參數設定為Off,或者設定為Email,最後一行将替換為對 ServerAdmin 的Email提示。
Alias /icons/ "/www/icons/"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
Alias參數用于将URL與伺服器檔案系統中的真實位置進行直接映射,一般的
文檔将在DocumentRoot 中進行查詢,然而使用Alias定義的路徑将直接映射到相
應目錄下,而不再到DocumentRoot 下面進行查詢。是以Alias可以用來映射一些
公用檔案的路徑,例如儲存了各種常用圖示的icons路徑。這樣使得除了使用符号連接配接之外,文檔根目錄(DocumentRoot)外的目錄也可以通過使用了Alias映射,提供給浏覽器通路。
定義好映射的路徑之後,應該需要使用Directory語句設定通路限制。
ScriptAlias /cgi-bin/ "/www/cgi-bin/"
AllowOverride None
Options None
Order allow,deny
Allow from all
ScriptAlias也是用于URL路徑的映射,但與Alias的不同在于,ScriptAlias 是用于映射CGI程式的路徑,這個路徑下的檔案都被定義為CGI程式,通過執行它們來獲得結果,而非由伺服器直接傳回其内容。預設情況下CGI程式使用cgi-bin目錄作為虛拟路徑。
# Redirect old-URI new-URL
Redirect參數是用來重寫URL的,當浏覽器通路伺服器上的一個已經不存在的資源的時候,伺服器傳回給浏覽器新的URL,告訴浏覽器從該URL中擷取資源。這主要用于原來存在于伺服器上的文檔,改變了位置之後,而又希望能使用老URL能通路到,以保持與以前的URL相容。
IndexOptions FancyIndexing
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
ReadmeName README
HeaderName HEADER
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
當一個HTTP請求的URL為一個目錄的時候,伺服器傳回這個目錄中的索引檔案。但如果一個目錄中不存在預設的索引檔案,并且該伺服器又許可顯示目錄檔案清單的時候,就會顯示出這個目錄中的檔案清單,為了使得這個檔案清單能具有可了解性,而不僅僅是一個簡單的清單,就需要前面的這些設定參數。
>>上篇文章:LINUX下Apache伺服器配置全攻略(五)
>>下篇文章:LINUX下Apache伺服器配置全攻略(七)