ServerName localhost
缺省狀況下,並不須要指定這個ServerName參數,服務器將自動經過名字解析過程來得到本身的名字,但若是服務器的名字解析有問題(一般爲反向解析不正確),或者沒有正式的DNS名字,也能夠在這裏指定I P地址。當ServerName設置不正確的時候,服務器不能正常啓動。
一般一個Web服務器能夠具備多個名字,客戶瀏覽器可使用全部這些名字或IP地址來訪問這臺服務器,但在沒有定義虛擬主機的狀況下,服務器老是以本身的正式名字迴應瀏覽器。ServerName就定義了Web服務器本身認可的正式名字,例如一臺服務器名字(在DNS中定義了A類型)爲freebsd.exmaple.org.cn,同時爲了方便記憶還定義了一個別名(CNAME記錄)爲www.exmaple.org.cn,那麼Apache自動解析獲得的名字就爲freebsd.example.org.cn,這樣無論客戶瀏覽器使用哪一個名字發送請求,服務器老是告訴客戶程序本身爲freebsd.example.org.cn。雖然這通常並不會形成什麼問題,可是考慮到某一天服務器可能遷移到其餘計算機上,而只想經過更改DNS中的www別名配置就完成遷移任務,因此不想讓客戶在其書籤中使用 freebsd記錄下這個服務器的地址,就必須使用ServerName來從新指定服務器的正式名字。
DocumentRoot 「/usr/local/www/data「
DocumentRoot定義這個服務器對外發布的超文本文檔存放的路徑,客戶程序請求的UR L就被映射爲這個目錄下的網頁文件。這個目錄下的子目錄,以及使用符號鏈接指出的文件和目錄都能被瀏覽器訪問,只是要在URL上使用一樣的相對目錄名。
注意,符號鏈接雖然邏輯上位於根文檔目錄之下,但實際上能夠位於計算機上的任意目錄中,所以可使客戶程序能訪問那些根文檔目錄以外的目錄,這在增長了靈活性的同時但減小了安全性。Apache在目錄的訪問控制中提供了FollowSymLinks選項來打開或關閉支持符號鏈接的特性。
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Apache服務器能夠針對目錄進行文檔的訪問控制,然而訪問控制能夠經過兩種方式來實現,一個是在設置文件 httpd.conf(或access.conf)中針對每一個目錄進行設置,另外一個方法是在每一個目錄下設置訪問控制文件,一般訪問控制文件名字爲.htaccess。雖然使用這兩個方式都能用於控制瀏覽器的訪問,然而使用配置文件的方法要求每次改動後從新啓動httpd守護進程,比較不靈活,所以主要用於配置服務器系統的總體安全控制策略,而使用每一個目錄下的.htaccess文件設置具體目錄的訪問控制更爲靈活方便。
<Directory 「H:/web001「>
Directory語句就是用來定義目錄的訪問限制的,這裏能夠看出它的標準語法,爲一個目錄定義訪問限制。上例的這個設置是針對系統的根目錄進行的,設置了容許符號鏈接的選項FollowSymLinks ,以及使用AllowOverride None表示不容許這個目錄下的訪問控制文件來改變這裏進行的配置,這也意味着不用查看這個目錄下的相應訪問控制文件。
因爲Apache對一個目錄的訪問控制設置是可以被下一級目錄繼承的,所以對根目錄的設置將影響到它的下級目錄。注意因爲AllowOverride None的設置,使得Apache服務器不須要查看根目錄下的訪問控制文件,也不須要查看如下各級目錄下的訪問控制文件,直至httpd.conf(或access.conf )中爲某個目錄指定了容許Alloworride,即容許查看訪問控制文件。因爲Apache對目錄訪問控制是採用的繼承方式,若是從根目錄就容許查看訪問控制文件,那麼Apache就必須一級一級的查看訪問控制文件,對系統性能會形成影響。而缺省關閉了根目錄的這個特性,就使得Apache從httpd.conf中具體指定的目錄向下搜尋,減小了搜尋的級數,增長了系統性能。所以對於系統根目錄設置AllowOverride None不但對於系統安全有幫助,也有益於系統性能。
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
這裏定義的是系統對外發布文檔的目錄的訪問設置,設置不一樣的AllowOverride選項,以定義配置文件中的目錄設置和用戶目錄下的安全控制文件的關係,而Options選項用於定義該目錄的特性。
配置文件和每一個目錄下的訪問控制文件均可以設置訪問限制,設置文件是由管理員設置的,而每一個目錄下的訪問控制文件是由目錄的屬主設置的,所以管理員能夠規定目錄的屬主是否能覆蓋系統在設置文件中的設置,這就須要使用 AllowOverride參數進行設置,一般能夠設置的值爲:
AllowOverride的設置 對每一個目錄訪問控制文件做用的影響
All 缺省值,使訪問控制文件能夠覆蓋系統配置
None 服務器忽略訪問控制文件的設置
Options 容許訪問控制文件中可使用Options參數定義目錄的選項
FileInfo 容許訪問控制文件中可使用AddType等參數設置
AuthConfig 容許訪問控制文件使用AuthName,AuthType等針對每一個用戶的認證機制,這使目錄屬主能用口令和用戶名來保護目錄
Limit 容許對訪問目錄的客戶機的IP地址和名字進行限制
每一個目錄具有必定屬性,可使用Options來控制這個目錄下的一些訪問特性設置,如下爲經常使用的特性選項:
Options設置 服務器特性設置
All 全部的目錄特性都有效,這是缺省狀態
None 全部的目錄特性都無效
FollowSymLinks 容許使用符號鏈接,這將使瀏覽器有可能訪問文檔根目錄(DocumentRoot)以外的文檔
SymLinksIfOwnerMatch 只有符號鏈接的目的與符號鏈接自己爲同一用戶所擁有時,才容許訪問,這個設置將增長一些安全性
ExecCGI 容許這個目錄下能夠執行CGI程序
Indexes 容許瀏覽器能夠生成這個目錄下全部文件的索引,使得在這個目錄下沒有index.html(或其餘索引文件)時,能向瀏覽器發送這個目錄下的文件列表
此外,上例中還使用了Order、Allow、Deny等參數,這是Limit語句中用來根據瀏覽器的域名和 IP地址來控制訪問的一種方式。其中Order定義處理Allow和Deny的順序,而Allow、Deny則針對名字或IP進行訪問控制設置,上例使用allow from all,表示容許全部的客戶機訪問這個目錄,而不進行任何限制。html