# # 基於 NCSA 服務的配置文件。 # #這是Apache服務器主要配置文件。 #它包含影響服務器運行的配置指令。 #關於詳細信息請參見<URL:http://httpd.ache.org/doc-2.0/> # #不要只是簡單的閱讀這些說明信息而不去理解它們做什么。 #這里只是做了簡單的說明,如果你沒有參考在線文件,你就會被警告。 # #這些配置指令被分為下面三個部分: #1. 控制整個Apache服務器行為的部分(即全局環境變量) #2. 定義主要或者默認服務參數的指令,也為所有虛擬主機提供默認的設置參數 #3. 虛擬主機的設置參數,在一些Apache服務進程中配置不同的IP地址和主機名。 # #配置和日志文件名:如果你指定的文件名以“/”開始(win32下以“dirver:/”), #服務器將使用絕對路徑,如果文件名不是以“/”開始的,那么它將把ServerRoot #的值附加在文件名的前面,例如,對“logs/foo.log",如果ServerRoot的值 #為“/usr/local/apache2”,則該文件應為“/usr/local/apache2/logs/foo.log”
###第一區:全局環境參數 # #這里設置的參數將影響整個Apache服務器的行為, #例如Apache能夠處理的並發請求的數量或配置文件所在的位置等. # # Don't give away too much information about all the subcomponents # we are running. Comment out this line if you don't mind remote sites # finding out what major optional modules you are running // 問:這一段的中文意思是什么?請指教 ServerTokens OS // 1) 當服務器響應主機頭[header]信息時顯示Apache的版本號和主機的操作系統; // 2) 如將"OS"改為"Prod",在出現錯誤頁的時候不顯示服務器操作系統的名稱. # #ServerRoot:目錄樹的根結點,指出服務器保存其 #配置、出錯信息和日志文件等的根目錄。 # #注意!如果你想要將它指定為NFS(或其它網絡上的位置) #請一定要去閱讀與LockFile有關的文檔(可能在 #<URL:http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile>); #這樣的話,您將節省大量的麻煩. # #在路徑的結尾請不要添加斜線。 # ServerRoot "/etc/httpd" // 設置服務器的根目錄.
#ScoreBoardFile:用來保存內部服務進程信息的文件。 #如果未指明(默認),scoreboard將被保存在一個匿名的共享內存段中, #並且它不能被第三方軟件所使用。 #如果指定了,要確保兩個Apache不能使用同一個scoreboard文件, #這個scoreboard文件必須保存在本地磁盤上。 # #ScoreBoardFile run/httpd.scoreboard
# #PidFile:當服務器啟動時用於記錄進程識別ID的文件。 # PidFile run/httpd.pid // 設置運行Apache時使用的pidFile路徑
# #Timeout:設置接收和發送前的超時秒數 # Timeout 300 // 如果300秒沒有收到或者送出任何數據就斷開該連接
# #KeepAlive:是否允許保持連接功能(每個連接有多個請求), #設為"Off"則停用。 # KeepAlive Off // 使用保持連接的功能,如果為Off 則為不使用保持連接的功能,那樣客戶一次請求就只能響應一個文 // 件,建議設為KeepAlive On
# #MaxKeepAliveRequests:在一個保持連接期間允許的最大請求數, #設為0表示無限制接入。 #我們推薦你將其設為一個較大的值,以獲得最高的性能. # MaxKeepAliveRequests 100 // 使用保持連接功能時,設置客戶一次請求連接能響應的文件數最大上限為100
# #KeepAliveTimeout:同一連接同一客戶端兩個請求之間等待的時間秒數. # KeepAliveTimeout 15 // 使用保持連接功能時,如果兩個相鄰連接時間超過15秒,就斷開連接。
## ##Server-Pool大小設定(針對MPM) ##
# prefork MPM # StartServers:啟動時服務器的進程數 # MinSpareServers:保有的備用進程的最小數目 # MaxSpareServers:保有的備用進程的最大數目 # MaxClients:服務器允許啟動的最大進程數 # MaxRequestsPerChild:一個服務進程允許的最大請求數 <IfModule prefork.c> // 設置使用預生派(Prefork MPM)運行方式的參數,此方式是Redhat默認的方式 StartServers 8 // 設置服務器啟動時運行的進程數為8 MinSpareServers 5 // 如果低於5個空閑子進程,就會創建新的子進程為客戶提供服務 MaxSpareServers 20 // 如果存在高於20個空閑子進程,就創建逐一刪除的子進程來提高系統性能 MaxClients 150 // 限制同一時間連接數不能超過150 MaxRequestPerChild 1000 // 限制每個子進程在結束請求之前能處理的連接請求為1000 </IfModule>
# worker MPM # StartServers:啟動時的服務進程數目 # MaxClients:允許同時連接的最大用戶數目 # MinSpareThreads:保有的最小工作線程數目 # MaxSpareThreads:允許保有的最大工作線程數目 # ThreadsPerChild:每個服務進程中的工作線程常數 # MaxRequestsPerChild:服務進程中允許的最大請求數目 <IfModule worker.c> // 設置使用工作者模式(worker MPM)運行方式的參數 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>
# perchild MPM # NumServers:服務進程數量 # StartThreads:每個服務進程中的起始線程數量 # MinSpareThreads:保有的最小線程數量 # MaxSpareThreads:保有的最大線程數量 # MaxThreadsPerChild:每個服務進程允許的最大線程數 # MaxRequestsPerChild:每個服務進程允許連接的最大數量 <IfModule perchild.c> // 設置使用獨立子進程(Perchild MPM)運行方式的參數 NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 </IfModule>
# # Listen:允許你將Apache服務綁定到指定的IP地址和端口上,以此取代默認值 # 參見<VirtualHost>指令 # # 改變如下命令使Apache只在指定的IP地址上監聽, # 以防止它在IP地址(0.0.0.0)上監聽 # # Listen 12.34.56.78:80 Listen 80 // 設置服務器的監聽端口 # # 配置文件從配置目錄“/etc/httpd/conf.d ”加載 # Include conf.dpublic_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.html index.html.var // 當訪問服務器時依次查找index.htm index.html.var
# # AccessFileName:在每個目錄中查詢為目錄提供附加配置指令的文件的文件名。 # 參見AllowOverride指令。 # AccessFileName .htaccess // 指定保護目錄配置文件的名稱
# # 下面的行防止.htaccess和.htpasswd文件被Web客戶查看。 # <Files ~ "^/.ht"> // 拒絕訪問以.ht開頭的文件,即保證.htaccess文件不被訪問 Order allow,deny Deny from all </Files>
# # Typeconfig:定義在哪里查詢mime.types文件。 # TypeConfig conf/mime.types // 指定負責處理MIME對應格式的配置文件的存放位置
# # DefaultType:定義當不能確定MIME類型時服務器提供的默認MIME類型。 # 如果你的服務主要包含text或HTML文檔,“text/plain”是一個好的選擇; # 如果大多是二進制文檔,諸如軟件或圖像,你應使用 # “application/octer-stream”來防止瀏覽器象顯示文本那樣顯示二進制文件。 # DefaultType text/plain // 指定默認的MIME文件類型為純文本或HTML文件 # # mod_mime_magic允許服務器從自己定義自己類型的文件中使用不同的線索(hints), # 這個MIMEMagicFile指令定義hints定義所在的文件。 # <IfModule mod_mime_magic.c> // 當mod_mime_magic.c模塊加載時,指定Magic信息碼配置文件的存放位置 # MIMEMagicFile /usr/share/magic.mime MIMEMagicFile conf/magic </IfModule>
# # HostnameLookups:指定記錄用戶端的名字還是IP地址,例如,本指令為on時 # 記錄主機名,如www.apache.org;為off時記錄IP地址,204.62.129.132。 # 默認值為off,這要比設為on好得多,因為如果設為on則每個用戶端請求都將會 # 至少造成對 nameserver 進行一次查詢。 # HostnameLookups Off // 只記錄連接Apache服務器的IP地址,而不記錄主機名 # # ErrorLog:錯誤日志文件定位。 # 如果你沒有在<VirtualHost>內定義ErrorLog指令,這個虛擬主機的錯誤信息 # 將記錄在這里。如果你在那兒定義了ErrorLog,這些錯誤信息將記錄在你所 # 定義的文件里,而不是這兒定義的文件。 # ErrorLog logs/error_log // 指定錯誤日志的存放位置
# # LogLevel:控制記錄在錯誤日志文件中的日志信息數量。 # 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。 # LogLevel warn // 指定記錄的錯誤信息的詳細等級為warn 級別
# # 下面的指令為CustomLog指令定義格式別名。 # LogFormat "%h %l %u %t /"%r/" %>s %b /"%{Referer}i/" /"%{User-Agent}i/"" combined // 定義4種日志記錄格式 LogFormat "%h %l %u %t /"%r/" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent
# # 指定接入日志文件的定位和格式(一般日志格式)。 # 如果你沒有在<VirtualHost>內定義這個指令,傳輸信息將記錄在這里, # 如果你定義了這個指令,則記錄在你指定的位置,而不是這兒定義的位置。 # # CustomLog logs/access_log common CustomLog logs/access_log combined // 指定訪問日志的記錄格式為combined(混合型),並指定訪問日志的存放位置
# # 如果你想要記錄agent和referer信息,可以使用下面的指令 # # CustomLog logs/referer_log referer # CustomLog logs/agent_log agent
# # 如果你想要使用一個文件記錄access,agent和referer信息, # 你可以如下定義這個指令: # # CustomLog logs/access_log combined
# # 隨意的添加包含服務器版本和虛擬主機名字一行信息到server-generated輸出頁中 # (內部錯誤文檔,FTP目錄列表,mod_status和mod_info輸出等等,除了CGI錯誤 # 或自定義的錯誤文檔以外)。 # 設為“EMail”將包含一個指向ServerAdmin的mailto:連接。 # 可以為如下值:On | Off | EMail # ServerSignature On // 設置Apache自己產生的頁面中使用Apache服務器版本的簽名
# # Aliases:在這時添加你需要的別名,格式如下: # Alias 別名真實名 # # 注意,如果你在別名的未尾包含了“/”,那么在URL中也需要包含“/”。 # 因此,“/icons”不是這個示例中的別名。 # 如果別名中以“/”結尾,那么真實名也必須以“/”結尾, # 如果別名中省略了結尾的“/”,那么真實名也必須省略。 # # 我們使用別名“/icons/”來表示FancyIndexed目錄列表,如果你不使用、 # FancyIndexing,你可以注釋掉它。 # Alias /icons/ "/var/www/icons/" // 設置內容協商目錄的訪問別名
<Directory "/var/www/icons"> // 設置/var/www/icons目錄的訪問權限 Options Indexes MultiViews // MultiViews: 使用內容協商功能決定被發送的網頁性質 AllowOverride None Order allow,deny Allow from all </Directory>
# # 這將改變ServerRoot/manual。這個別名提供了手冊頁所在的位置, # 即使你改變了你的DocumentRoot。如果你對有無手冊頁並不在意的話, # 你可以注釋掉它。 # Alias /manual "/var/www/manual" // 設置Apache手冊的訪問別名
<Directory "/var/www/manual"> // 設置/var/www/manual 目錄的訪問權限 Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> <IfModule mod_dav_fs.c> // 指定DAV加鎖數據庫文件的存放位置 # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb </IfModule> # # ScriptAlias:指定包含服務腳本的目錄。 # ScriptAliases 本質上與Aliases一樣,除了這里的文檔在請求時做為程序處理處理以外。 # 尾部的“/”規則與Alias一樣 # ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" // 設置CGI目錄的訪問別名
<IfModule mod_cgid.c> // 由於Redhat9中不使用worker MPM運行方式,所以不加載mod_cigd.c模塊 # # 添加mod_cgid.c設置,mod_cgid提供使用cgid進行通訊的UNIX套接字的 # 腳本接口路徑。 # Scriptsock run/httpd.cgid </IfModule>
# # 將"/var/www/cgi-bin"改為你的ScriptAliased指定的CGI目錄, # 如果你配置了的話。 # <Directory "/var/www/cgi-bin"> // 設置CGI目錄的訪問權限 AllowOverride None Options None Order allow,deny Allow from all </Directory>
# # Redirect允許你告訴客戶端使用存在於服務器名字空間中的文檔, # 而不是現在的,這幫助客戶定位那些改變了位置的文檔。 # 例如: # Redirect permanent /foo http://www.example.com/bar
# # 控制server-generated目錄列表顯示的指令 # # # FancyIndexing is whether you want fancy directory indexing or standard. # VersionSort is whether files containing version numbers should be # compared in the natural way, so that `apache-1.3.9.tar' is placed before # `apache-1.3.12.tar'. // 問:這一段的英文意思是什么?:) # IndexOptions FancyIndexing VersionSort NameWidth=* // FancyIndexing:對每種類型的文件前加上一個小圖標以示區別 // VersionSort:對同一軟件的多個版本進行排序 // NameWidth=*:文件名字段自動適應當前目錄下最長文件名 # # AddIcon* 指令告訴服務器不同擴展名的圖象文件如何顯示, # 只適用於FancyIndexed指令 # AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip // 當使用FancyIndexing VersionSort 之后,配置下面的參數 // 用於告知服務器在碰到不同的文件類型或擴展名時采用 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 為那些沒有顯式定義圖標的文件提供處理 # DefaultIcon /icons/unknown.gif // 當使用FancyIndexing VersionSort 之后,且無法識別文件類型時,顯示此處定義的圖標
# # AddDescription允許你在server-generated索引后放置一個簡短的說明。 # 只對FancyIndexed指令有效。 # 格式:AddDescription "說明" 文件名 # # AddDescription "GZIP compressed document" .gz # AddDescription "tar archive" .tar # AddDescription "GZIP compressed tar archive" .tgz
# # ReadmeName指定服務器默認查找的README文件的名字,並添加到目錄列表中 # # HeaderName指定目錄列表前綴文件的文件名 ReadmeName README.html // 當服務器自動列出目錄列表時,在所生成的頁面之后顯示README.html的內容 HeaderName HEADER.html // 當服務器自動列出目錄列表時,在所生成的頁面之前顯示HEADER.html的內容
# # IndexIgnore指定目錄索引忽略並且不包含在列表中的文件名集合, # 支持shell類型的通配符。 # IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
# # AddEncoding允許你在信息傳送中使用(Mosaic/X 2.1+)解壓縮信息, # 注意:不是所有的瀏覽器都支持這個選項。 # 盡管名字相似,但是下列的指令與上面的FancyIndexing定制指令不同。 # AddEncoding x-compress Z // 設置在線瀏覽器可以實時解壓.Z .gz .tgz類型文件,但並非所有瀏覽器都支持 AddEncoding x-gzip gz tgz
# # DefaultLanguage和AddLanguage允許你指定文檔的語言。 # 這使你可以讓用戶用容易理解的語言瀏覽文檔。 # # 指定默認的語言,這意味着所有沒有指定語言的包都將使用該語言。 # 多數情況下,你也許並不想設置它,除非你確信這樣做是正確的。 # 通常,不使用確定的語言比使用錯誤的語言要好。 # # DefaultLanguage nl # # 注意1:作為語言關鍵字的詞綴毫無疑問是不能一樣的--采用波蘭 # 文的文檔(網絡標准語言代碼是pl)將希望使用“AddLanguage pl .po” # 來避免與perl腳本的一般詞綴產生二義性。 # # 注意2: 下面的例子舉例說明在一些范例中語言的二字符縮寫與它的國家 # 的二字符縮寫不相同,例如 “Danmark/dk” 和 “Danmark/da” 的比較. # # 注意3: 在 “ltz” 的情況下我們使用三字符詞綴,違犯了 RFC的規定, # 運行中將修復它並使用RFC1766標准取得參考數據。 # # Danish (da) - Dutch (nl) - English (en) - Estonian (et) # French (fr) - German (de) - Greek-Modern (el) # Italian (it) - Norwegian (no) - Norwegian Nynorsk (nn) - Korean (kr) # Portugese (pt) - Luxembourgeois* (ltz) # Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz) # Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja) # Russian (ru) - Croatian (hr) # AddLanguage da .dk // 設置網頁內容語言種類,(瀏覽器要啟用內容協商),對於中文網頁,此項無實際意義 AddLanguage nl .nl AddLanguage en .en AddLanguage et .et AddLanguage fr .fr AddLanguage de .de AddLanguage he .he AddLanguage el .el AddLanguage it .it AddLanguage ja .ja AddLanguage pl .po AddLanguage kr .kr AddLanguage pt .pt AddLanguage nn .nn AddLanguage no .no AddLanguage pt-br .pt-br AddLanguage ltz .ltz AddLanguage ca .ca AddLanguage es .es AddLanguage sv .se AddLanguage cz .cz AddLanguage ru .ru AddLanguage tw .tw AddLanguage zh-tw .tw AddLanguage hr .hr
# LanguagePriority允許你在會話過程中優先使用一些語言。 # # 以優先次序遞減的方式列出它們。我們或多或少地采用按字母排列順序的方式 # 排列它們。也許你想要改變這個順序。 LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw // 當啟用內容協商時,設置語言的先后順序
# # ForceLanguagePriority 允許你為MULTIPLE CHOICES(Prefer)[在通訊的情況下] # 或NOT ACCEPTABLE(Fallback)[沒有可接受的語言匹配的情況]提供一個結果頁。 # ForceLanguagePriority Prefer Fallback // Prefer:當有多種語言可以匹配時,使用LanguagePriority 列表的第一項 // Fallback:當沒有語言可以匹配時,使用LanguagePriority 列表的第一項
# # 為發送出的所有頁指定默認的字符集,這總是一個好主意,並且為你的 # web站點的國際化打開了大門,這不正是你曾經想要的嗎。同樣地,指定 # 默認字符集有一些小的損害,如一個使用iso-8859-1(latin1)標准命令 # 的頁面,除非以別的方式指定例如你僅僅以顯式方式聲明它。 # 也有一些與那些總是鼓勵你使用默認字符集的javascropt和URL語法有關 # 的瀏覽器安全原因。 # AddDefaultCharset ISO-8859-1 // 設置默認字符集(要設置成為簡體中文,把"ISO-8859-1"改為"GB2312")
# # 一般以文件擴展名的方式使用字符集。也許你想要避免與語言擴展發生 # 碰撞,除非你在每次改變后都做了很好的測試。 # 參見http://www.iana.org/assignments/character-sets以取得字符集 # 的名字列表和它們各自的RFCs。 # AddCharset ISO-8859-1 .iso8859-1 .latin1 // 設置各種字符集 AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen AddCharset ISO-8859-3 .iso8859-3 .latin3 AddCharset ISO-8859-4 .iso8859-4 .latin4 AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk AddCharset ISO-2022-JP .iso2022-jp .jis AddCharset ISO-2022-KR .iso2022-kr .kis AddCharset ISO-2022-CN .iso2022-cn .cis AddCharset Big5 .Big5 .big5 # 對於俄語,使用了多個字符集(如何使用主要依靠客戶端): AddCharset WINDOWS-1251 .cp-1251 .win-1251 AddCharset CP866 .cp866 AddCharset KOI8-r .koi8-r .koi8-ru AddCharset KOI8-ru .koi8-uk .ua AddCharset ISO-10646-UCS-2 .ucs2 AddCharset ISO-10646-UCS-4 .ucs4 AddCharset UTF-8 .utf8
# 下面的字符集沒有映射到一個特定的標准(iso)上,但是它們在瀏覽器 # 中被廣泛的支持。注意那些大寫字母。 # (它不應該,但是它是為兼容一些瀏覽器而做) # # 參見http://www.iana.org/assianments/character-sets以取得 # 它們的列表。但是瀏覽器支持較少。 # AddCharset GB2312 .gb2312 .gb AddCharset utf-7 .utf7 AddCharset utf-8 .utf8 AddCharset big5 .big5 .b5 AddCharset EUC-TW .euc-tw AddCharset EUC-JP .euc-jp AddCharset EUC-KR .euc-kr AddCharset shift_jis .sjis
# # AddType允許你為指定的文件類型添加或覆蓋mime.types文件中配置的MIME # AddType application/x-tar .tgz // 增加新的MIME類型(避免用戶編輯/etc/mime.types)
# # AddHandler允許你映射確定的文件擴展名到“handlers”: # 與文件類型無關的行為。這既能編譯到服務器中也可以添加到Action指令 # 中(看下面)。 # # 為了在ScriptAliased指令指定的以外使用CGI腳本: #(要使它可用,你還需要在Options中添加“ExecCGI”。 # #AddHandler cgi-script .cgi
# # 對於那些包含他們自己的HTTP頭的文件 # # AddHandler send-as-is asis
# # 對於server-parsed imagemap文件: # AddHandler imap-file map // 設置Apache對某些擴展名的處理方式 # # 對於類型映像:(轉移資源) #(這是默認的設定以允許Apache的“It Worked”頁能多種語言分發)。 # AddHandler type-map var
# # 過濾器允許你在將它發送到客戶端前進行處理。 # # 為了在服務器端分析包含(SSI)的.shtml文檔: # (要執行這個指令,你還需要在Options指令中添加“Includes”。) # AddOutputFilter INCLUDES .shtml // 使用過慮器執行SSI
# # Action讓你定義當調用匹配的媒體文件時將要執行的腳本。這將減少 # 那些經常使用的CGI腳本的URL路徑名的重復輸入。 # 格式:Action media/type /cgi-script/location # 格式:Action handler-name /cgi-script/location #
# # 可配置的錯誤應答有三種風格: # 1)plain text 2)local redirects 3) external redirects # # 一些示例: # ErrorDocument 500 "The server made a boo boo." # ErrorDocument 404 /missing.html # ErrorDocument 404 "/cgi-bin/missing_handler.pl" # ErrorDocument 402 http://www.example.com/subscription_info.html #
# # 綜合應用這些指令,我們可以創建一個國際化的出錯應答。 # # 我們使用Alias來重定向任意/error/HTTP_<error>.html.var應答到 # 我們的多語言錯誤消息集合。使用正確的文本替代它。 # # 通過加入下面的行,你就能夠改變這些消息的顯示,而不必改變 # HTTP_<error>.html.var文件。 # # Alias /error/include/ "/your/include/path/" # # 以將/var/www/error/include/下的文件拷貝到/your/inclue/path/下 # 開始,你可以創建你自己的文件集合,甚至是基於每個虛擬主機的。 # Alias /error/ "/var/www/error/" // 設置錯誤頁面目錄的別名 <IfModule mod_negotiation.c> <IfModule mod_include.c> <Directory "/var/www/error"> // 設置/var/www/error目錄的訪問權限 AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback </Directory> // 設置錯誤頁面輸出 ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var ErrorDocument 410 /error/HTTP_GONE.html.var ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
</IfModule> </IfModule>
# # 下面的命令更改標准的HTTP應答行為以處理己知的瀏覽器問題。 # // 設置瀏覽器匹配 BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4/.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4/.0" force-response-1.0 BrowserMatch "Java/1/.0" force-response-1.0 BrowserMatch "JDK/1/.0" force-response-1.0
# # 下面命令關閉對那些沒有尾部“/”的目錄的非GET請求的重定向, # 這些命令修復了微軟的采用DAV方法不能正確處理重定向的WEB文件夾的問題。 # Apple下的DAV文件系統和Gnome下的VFS對DAV的支持也是采用這樣的方法 # 進行處理的。 # BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully
# # 允許你使用URL:http://servername/server-status來通過mod_status生 # 成並報告服務器狀態信息。改變.example.com為你自己的域名。 # #<Location /server-status> # SetHandler server-status # Order deny,allow # Deny from all # Allow from .your-domain.com #</Location> # # 允許使用URL:http://servername/server-info來遠程報告服務器配置信息 # (需要mod_info.c支持)。改變“.example.com”為你自己的域名。 # #<Location /server-info> # SetHandler server-info # Order deny,allow # Deny from all # Allow from .your-domain.com #</Location>
# # 代理服務器命令,去掉下面的行使代理服務可用。 # #<IfModule mod_proxy.c> #ProxyRequests On # #<Proxy *> # Order deny,allow # Deny from all # Allow from .your-domain.com #</Proxy>
# # 安裝或關閉HTTP/1.1“通道”頭處理。 # (“Full”添加服務器版本信息,“Block”移掉所有輸出“通道”頭信息。 # 可以設為下面各選項之一:Off | On | Full | Block # # ProxyVia On
# 最好為代理服務安裝高速緩沖,去掉下面幾行的注釋符號: # (沒有CacheRoot則不緩沖) # #CacheRoot "/etc/httpd/proxy" #CacheSize 5 #CacheGcInterval 4 #CacheMaxExpire 24 #CacheLastModifiedFactor 0.1 #CacheDefaultExpire 1 #NoCache a-domain.com another-domain.edu joes.garage-sale.com
# </IfModule> # 代理命令結束。
### 第三區:虛擬主機 # # VirtualHost:你可以通過設置虛擬主機容器以實現在你的主機上保有多個 # 域名/主機名。大多數配置信息只使用基於名字的虛擬主機,因此服務器 # 不必擔心IP地址的問題,下面的命令以*號代替虛擬主機名。 # # 在你試着配置你的虛擬主機以前,請參見 # URL:http://httpd.apache.org/docs-2.0/vhosts/>以取得更多的信息。 # # 你可以使用命令行選項“-S”來檢驗你的虛擬主機配置。
# # 使用基於名字的虛擬主機。 # # NameVirtualHost *
# # 虛擬主機示例: # 幾乎所有的Apache命令都可以在虛擬主機容器中使用。 # 第一個虛擬主機區是用於向服務名未知的請求進行應答的配置。 # #<VirtualHost *> # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot /www/docs/dummy-host.example.com # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common #</VirtualHost> |