?? ahttp.txt
字號:
inetd
伺服器將由系統程序 inetd 執行;啟動伺服器使用的命令加在
/etc/inetd.conf 檔案里。
standalone
伺服器將會作為伺服程式(daemon)執行;啟動伺服器使用的命令
加在系統啟動指令稿里(/etc/rc.local or /etc/rc.d/...)。
inetd 在這兩個選項里是較少使用的。因為接收到每個 http 連線就會
重頭開始執行一份新的伺服器拷貝;連線結束後,這支程式就會結束。
每次連線要付出的代價很高,但是因為安全上的理由,某些管理者喜歡
這個選項。
standalone 是 ServerType 使用最普遍的設定,因為它更為有效率。
伺服器啟動一次,而且服務所有的連線。如果你想要執行阿帕契來服務
一個忙碌的站臺, standalone 大概將會是你唯一的選擇。
安全: 如果你對安全性有偏執,以 inetd 模式來執行它。兩種方式都
不能絕對確保安全性,但是大部分人使用 standalone 用得很高興時,
inetd 大概比較不會遭到攻擊。
3.28 StartServers 指令
語法: StartServers 數字
預設: StartServers 5
用於: server config
狀態: 核心
這個 StartServers 指令設定啟動時建立的子伺服程序數量。因為程序
的數量是依據負載動態控制的,通常沒有什麼理由得要調整這個參數。
參閱 MinSpareServers 以及 MaxSpareServers 。
3.29 TimeOut 指令
語法: TimeOut 數字
預設: TimeOut 1200
用於: server config
狀態: 核心
TimeOut 這個指令設定伺服器接收一個請求以及完成一個請求最長的等
待時間,以秒為單位。所以如果它花費比 TimeOut 更多秒來讓客戶端
傳送請求或接收回應,伺服器將會中斷該連線。因此 TimeOut 限制一
次可以傳輸的最大資料量;對於大檔案,以及慢速網路傳輸時間可能會
很久。
3.30 User 指令
語法: User 使用者辨識碼
預設: User #-1
用於: server config
狀態: 核心
User 這個指令設定伺服器用來回答請求的使用者辨識碼。為了要能夠
使用這個指令,必須以 root 身分起始執行獨立的伺服器。Unix使用者
辨識碼可以是其中之一:
一個使用者名稱
藉由名稱參照給定的使用者。
# 跟隨著使用者編號
藉由使用這個編號參照他們。
這個使用者應該不能有存取外界所不能看到的檔案的權限,而且與此類
似,這個使用者應該不能執行對 httpd 要求而言沒有意義的程式碼。
建議你特別為執行這個伺服器設立新的使用者以及群組。某些管理者使
用 nobody 但是這并非永遠可行或合適的。
注意: 如果你以非 root 使用者的身分啟動這個伺服器,它將無法切換
到權限較低的使用者,并且取而代之的是它將會繼續以原使用者身份來
執行。如果你真的是以 root 啟動這個伺服器,那麼這個父程序一般仍
然以 root 身分在執行。
安全: 不要把 User(or Group) 設為 root 除非你確實知道你在做什麼
以及會有怎麼樣的危險。
3.31 指令
語法: ...
用於: 伺服器配置
位於: 核心部份
以及 用來把一組指令包裝起來,這些
指令將只會應用到某個特定的虛擬主機上。任何可用於虛擬主機的指令
都可以使用。當伺服器接收到某個特定主機上的文件請求的時候,它會
使用包裝在 節段里的配置指令。位址可以是
。虛擬主機的 IP 位址
。虛擬主機的 IP 位址的完整領域名稱。
范例:
ServerAdmin webmaster@host.foo.com
DocumentRoot /www/docs/host.foo.com
ServerName host.foo.com
ErrorLog logs/host.foo.com-error_log
TransferLog logs/host.foo.com-access_log
目前,每段 VirtualHost 必須符合伺服器不同的 IP 位址,所以伺服
機器必須配置成能夠接收多個位址的 IP 封包。如果該機器并沒有多個
網路界面,那麼這可以配合 ifconfig alias 指令來完成(如果你的作
業系統支援這個功能),或是配合像是 VIF(for SunOS(TM)4.1.x)一類
的核心修補檔。
第四章
阿帕契標準模組
4.1 mod_access 模組
這個模組包含在 mod_access.c 檔案里,而且依預設會編譯進去。它提
供以客戶端主機名稱或 IP 位址為基礎的存取控制。
4.1.1 allow
語法: allow from 主機 主機 ...
用於: directory, .htaccess
需求: Limit
狀態: 基礎
模組: mod_access
allow 這個指令影響能夠存取某特定目錄的主機;典型是用在
節區里。主機可以是下列之一:
all
允許所有的主機存取。
(部份)領域名稱
允許名稱為此字串或以此字串結束的主機存取。
完整的 IP 位址
允許該 IP 位址的主機存取。
部份的 IP 位址
某個 IP 位址第一到第三個位元組,作為子網路限制之用。
范例:
allow from .ncsa.uiuc.edu
允許在指定領域里的所有主機進行存取。
注意這比較的是整個的內容;所以 bar.edu 不會符合 foobar.edu 。
參閱 deny 以及 order 指令。
4.1.2 deny
語法: deny from 主機 主機 ...
用於: directory, .htaccess
需求: Limit
狀態: 基礎
模組: mod_access
deny 這個指令影響能夠存取某特定目錄的主機;典型是用在
節區里。主機可以是下列之一:
all
拒絕所有的主機存取
(部份)的領域名稱
拒絕名稱為此字串或以此字串結束的主機存取。
完整的 IP 位址
拒絕該 IP 位址的主機存取。
部份的 IP 位址
某個 IP 位址第一到第三個位元組,作為子網路限制之用。
范例:
deny from 16
拒絕在指定網路里的所有主機進行存取。
注意這比較的是整個的內容;所以 bar.edu 不會符合 foobar.edu 。
參閱 allow 以及 order 指令。
4.1.3 order
語法: order 次序
預設: order deny, allow
用於: directory, .htaccess
需求: Limit
狀態: 基礎
模組: mod_access
order 這個指令控制評估 allow 以及 deny 指令的次序。次序可以是
其中之一:
deny,allow
在 allow 指令之前評估 deny 指令
allow,deny
在 deny 指令之前評估 allow 指令
mutual-failue
只有那些出現在 allow 列表里而且沒有出現在 deny 列表里的
主機可以進行存取。
范例:
order deny,allow deny from all allow from .ncsa.uiuc.edu
允許在 ncsa.uiuc.edu 這個領域里的主機進行存取;拒絕所有其它的
主機存取。
4.2 mod_alias 模組
這個 mod_alias 模組包含在 mod_alias.c 檔案里,而且依預設會編
譯進去。它提供的功能是對映主機檔案系統的不同部份到文件樹去,及
URL 轉向。
4.2.1 Alias
語法: Alias url-路徑 目錄-檔案名稱
用於: server config, virtual host
狀態: 基礎
模組: mod_alias
Alias 這個指令使文件可以存放在 DocumentRoot 之外的本地檔案系統
里。以 url-路徑 開始的 URLs 將會被對映到以 目錄-檔案名稱 開始
的本地檔案去。例如:
Alais /image /ftp/pub/image
對於 http://myserver/images/foo.gif 的這個請求會使得伺服器回傳
檔案 /ftp/pub/image/foo.gif 。
參閱 ScriptAlias 指令。
4.2.2 Redirect
語法: Redirect url-路徑 url
用於: server config, virtual host
狀態: 基礎
模組: mod_alias
Redirect 這個指令對映舊的 URL 到新的去。新的 URLs 會被回傳給
客戶端以便配合新的位址再次嘗試擷取。Url-路徑 (%-decoded)路徑;
任何以這個路徑作為開始的文件請求都將回傳一個錯誤并重導到以 url
作為開始的新(%-encoded) url 去。例如:
Redirect /service http://foo2.bar.com/service
如果客戶端請求 http://myserver/service/foo.txt 則會被告知應該
擷取 http://foo2.bar.com/service/foo.txt 來取代。
注意: 無論配置檔里的次序如何,Redirect 指令優先於 Alias 以及
ScriptAlias 指令。
4.2.3 ScriptAlias
語法: ScriptAlias url-路徑 目錄-檔案名稱
用於: server config, virtual host
狀態: 基礎
模組: mod_alias
ScriptAlias 這個指令除了還另外把目標目錄標記為包含 CGI 指令稿
以外其功能與 Alias 指令相同,以 url-路徑 作為開始的 URLs 將會
被對映到以 目錄-檔案名稱 作為開始的指令稿去。例如:
ScriptAlias /cgi-bin/ /web/cgi-bin/
對於 http://myserver/images/foo 的這個請求會使伺服器去執行指令
稿 /web/cgi-bin/foo 。
4.3 mod_asis 模組
這個模組包含在 mod_asis.c 檔案里,而且依預設會編譯進去。它是為
.asis 檔案而提供的。任何 mime 型態為 httpd/send-as-is 的文件都
將由這個模組處理。
4.3.1 目的
允許定義檔案的型態,如此阿帕契可以不加 HTTP 標頭(headers) 傳送
它們。
這可以用來從伺服器傳送任何型態的資料,包括重導(redirects) 以及
其它特殊的 HTTP 回應,而不需要 cgi-script 或是 nph script 。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -