Apache服務器全局配置之服務器標識配置篇
本文摘錄自Apache2.2手冊
服務器標識相關指令:
ServerName
ServerAdmin
ServerSignature
ServerTokens
UseCanonicalName
UseCanonicalPhysicalPort
ServerAdmin和ServerTokens指令控制有關服務器的哪些信息將出如今服務器生成的文檔中(如錯誤消息)。ServerTokens指令設置服務器HTTP響應頭字段的值。
ServerName、UseCanonicalName、UseCanonicalPhysicalPort指令用來決定怎樣構建自引用URL,譬如,某客戶端對一個目錄發出請求,但沒有包含目錄名最後的斜線"/",Apache將重定向客戶端到包含"/"的全名,以使客戶端能夠正確解析文檔中的相對引用。
ServerName指令
語法:ServerName [scheme://] FQDN [:port]
這個指令用來設置服務器用於辨識本身的主機名和端口號。主要用於建立重定向URL。
例如,你的web服務器的主機名爲example.bob.com,但你的web服務器同時在DNS服務器中擁有一個DNS別名www.bob.com。而你但願web服務器更顯著一點,你能夠在http.conf中使用ServerName指令來實現:
當沒有指定ServerName時,服務器會嘗試對IP地址進行反向查詢來推斷主機名。若是在ServerName中沒有指定端口號,服務器會監聽全部端口。爲了增強可靠性和可預測性,應該使用ServerName顯示的指定一個主機名和端口號。
若是使用的是基於域名的虛擬主機,在<VirtualHost>段中的ServerName將是爲了匹配這個虛擬主機,在「Host:」請求頭中必須寫主機名。
「scheme://」用於在代理以後或離線設備上也能正確的檢測規範化的服務器URL。
ServerAdmin指令
語法:ServerAdmin email-address|URL
這個指令用來設置服務器返回給客戶端的錯誤信息中包含的管理員郵件地址。便於用戶在收到錯誤信息後能及時與管理員取得聯繫。
若是httpd不能將提供的參數識別爲URL,它就會假定它是一個email-address,並在超連接中用在mailto:後面。推薦使用一個Email地址,由於許多CGI腳本是這樣認爲的。若是你確實想使用URL,必定要保證指向一個你可以控制的服務器,不然用戶將沒法確保必定能夠和你取得聯繫。
建議設置管理員設置一個本身的郵箱地址。好比:
ServerSignature指令
語法:ServerSignature . | Off | Email
默認:ServerSignature Off
這個指令用來配置服務器端生成文檔的頁腳(錯誤信息、mod_proxy的FTP目錄列表、mod_info的輸出)。使用該指令來啓用這個頁腳主要在於處於一個代理服務器鏈中的時候,用戶基本沒法辨識出到底是鏈中的哪一個服務器真正產生了返回的錯誤信息。
http.conf中該指令默認是Off的,這樣就沒有錯誤行;使用On會簡單的增長一行關於服務器版本和正在提供服務的ServerName;使用Email設置不只會簡單的增長一行關於服務器版本和正在提供服務的ServerName,還會額外建立一個指向ServerAdmin的
mailto:
部分。
例如,我使用ServerSignature .後,在沒有打開web頁面時出現下面的信息:
對於2.0.44之後的版本,顯示詳細的服務器版本號將由ServerTokens指令控制。
ServerTokens指令
語法:ServerTokens Major | Minor | Min[imal] | Prod[uctOnly] | OS | Full
默認:ServerTokens Full
這個指令用來控制服務器迴應給客戶端的「Server:」應答頭是否包含關於服務器操做系統類型和編譯進的模塊描述信息。
注意:在使用ServerTokens指令時要先啓用ServerSignature指令。
ServerTokens Prod[uctOnly]:服務器會發送(好比):Apache
ServerTokens Major:服務器會發送(好比):Apache/2
ServerTokens Minor:服務器會發送(好比):Apache/2.2
ServerTokens Min[imal]:服務器會發送(好比):Apache/2.2.11
ServerTokens OS:服務器會發送(好比):Apache/2.2.11(Unix)
ServerTokens Full:服務器會發送(好比):Apache/2.2.11(Unix)PHP/5.2.8
UseCanonicalName指令
語法:UseCanonicalName On | Off | DNS
默認:UseCanonicalName Off
這個指令用來構造Apache的自引用URL(一個指回相同服務器的URL)。
UseCanonicalName .:會將ServerName設置的域名用於全部的自引用URL、SERVER_NAME、CGI中的SERVER_PORT。好比:若是你的web服務器有本身的域名,而且在DNS中有對應的NS記錄,並且httpd.conf將ServerName設置了域名,那麼你在瀏覽器中輸入
http://192.168.120.240/bbs
,它會自動將這個IP地址變成其對應的域名,好比
http://www.bob.com/bbs/
。此時,若是其餘客戶端的電腦不能正確的解析web服務器的這個域名,那麼在訪問這個web服務器時將會出現問題。由於web服務器會自動將IP地址轉變成域名。
UseCanonicalName Off:若是客戶端提供了主機名和端口,Apache將會使用客戶端提供的這些信息來構建自引用URL。這些值與用於實現基於域名的虛擬主機的值相同,而且對於一樣的客戶端可用。CGI變量SERVER_NAME和SERVER_PORT也會由客戶端提供的值來構建。
UseCanonicalName DNS:本設置用於爲大量基於IP的虛擬主機支持那些不提供「Host:「頭的瀏覽器使用。使用這個選項時,Apache將對客戶端連入的服務器的IP地址進行DNS反向解析,以構建自引用URL。
UseCanonicalPhysicalPort指令
語法:UseCanonicalPhysicalPort . | Off
默認:UseCanonicalPhysicalPort Off
這個指令用來配置服務器如何肯定本身的端口。
UseCanonicalPhysicalPort .:Apache有可能在構造服務器的規範端口時爲了符合UseCanonicalName指令而使用實際的物理端口號。
UseCanonicalPhysicalPort Off:Apache不會使用實際的物理端口號,而是依賴全部已經配置的信息來構造一個合法的端口號。
注意:
決定使用物理端口號的次序以下:
UseCanonicalName .
Servername指定的端口號
物理端口號
默認端口號
UseCanonicalName Off | DNS
「Host:」請求頭提供的端口號
物理端口號
Servername指定的端口號
默認端口號
在UseCanonicalPhysicalPort Off的狀況下,物理端口號將會從上述順序中剔除。