Sun ONE Web Server 6.1 管理員指南 |
第 8 章
配置伺服器喜好設定本章描述了如何配置 Sun ONE Web Server 的伺服器喜好設定。
本章包含下列小節:
啟動與停止伺服器一旦安裝了伺服器,它便會持續執行,偵聽並接受 HTTP 請求。
伺服器的狀態顯示在 [Server On/Off] 頁面上。您可以使用下列方法之一啟動與停止伺服器:
- 在 [Server On/Off] 頁面中,按一下 [Server On] 或 [Server Off]。
- 使用 [控制台] 中的 [服務] 視窗 (Windows)。
- 使用 start。如果您要透過 init 使用該程序檔,則必須將啟動指令 http:2:respawn:server_root/type-identifier/start -start -i 包含在 /etc/inittab 中。(UNIX/Linux)
- 使用 stop 可讓您完全關閉伺服器並中斷服務,直至伺服器重新啟動。如果您將 etc/inittab 檔案設定為自動重新啟動 (使用「respawn」),則必須在關閉伺服器之前移除 etc/inittab 中與 Web 伺服器相關的行,否則伺服器會自動重新啟動。(UNIX/Linux)
在關閉伺服器後,伺服器可能需要幾秒鐘完成關機程序並將狀態變更為「Off」。
如果您的機器當機或離線,伺服器便會停止,其正在處理的任何請求均可能遺失。
備註 在 UNIX 上,某些 Sun ONE Web Server 安裝可能需要存取比您的作業系統所允許的預設數目更多的記憶體和/或檔案描述元。如果您無法啟動伺服器,請使用 ulimit 指令,檢查由您的作業系統施加的資源限制。您作業系統的 ulimit 線上援助頁應該會提供更多資訊。
設定終止逾時
當伺服器停止時,它會停止接受新連線。然後等待所有未完成的連線完成。伺服器在逾時前的等待時間可在 magnus.conf 檔案中進行配置,該檔案位於 server_root/https-server_name/config/ 中。依預設,該值設定為 30 秒。若要變更該值,請將以下行增加至 magnus.conf︰
其中,seconds 表示伺服器在逾時前將等待的秒數。
配置該值的優點是伺服器將等待更長的時間以讓連線完成。不過,由於伺服器經常開啟來自非回應用戶端的連線,因此,延長終止逾時可能會延長其用於伺服器關機的時間。
重新啟動伺服器 (UNIX/Linux)
您可以使用下列方法之一重新啟動伺服器:
由於安裝程序檔無法編輯 /etc/rc.local 或 /etc/inittab 檔案,因而您必須使用文字編輯程式編輯這些檔案。如果您不瞭解如何編輯這些檔案,請洽詢您的系統管理員或參考系統文件。
通常,您無法用其中的任何一個檔案啟動已啟用 SSL 的伺服器,因為該伺服器在啟動前需要密碼。儘管您能透過將密碼以一般文字格式儲存在檔案中,來自動啟動已啟用 SSL 的伺服器,但建議您不要這樣做。
警告 以一般文字格式將已啟用 SSL 的伺服器密碼儲存在該伺服器的啟動程序檔內,會造成很大的安全性風險。可以存取該檔案的任何使用者都可以存取已啟動 SSL 的伺服器之密碼。在以一般文字格式儲存已啟用 SSL 的伺服器之密碼前,請考量安全性風險。
伺服器的啟動程序檔、金鑰對檔案以及金鑰密碼,應該為超級使用者所有 (或者,如果非超級使用者安裝了伺服器,則為該使用者帳號所有),並且只有該所有者才對其具有讀取和寫入權限。
自動啟動已啟用 SSL 的伺服器
如果您不考量安全性風險,請執行下列步驟來自動啟動已啟用 SSL 的伺服器:
用 Inittab 重新啟動 (UNIX/Linux)
若要使用 inittab 重新啟動伺服器,請將以下文字放入 /etc/inittab 檔案內的一行中:
其中,server_root 為伺服器的安裝目錄,type-identifier 為伺服器的目錄。
-i 選項可防止伺服器將其自身放置在後台程序中。
在停止伺服器之前,您必須移除該行。
使用系統 RC 程序檔案重新啟動 (UNIX/Linux)
如果您使用 /etc/rc.local 或系統中的對等檔案,請將以下行放入 /etc/rc.local 中︰
以您安裝伺服器的目錄取代 server_root。
手動重新啟動伺服器 (UNIX/Linux)
在從指令行重新啟動伺服器的情況下,如果伺服器在號碼小於 1024 的連接埠上執行,則以超級使用者身份登入;否則,以超級使用者身份登入或使用伺服器的使用者帳號登入。在指令行提示處,鍵入下列行並按下 Enter 鍵:
其中,server_root 為您安裝伺服器的目錄。
您可以在行結尾處使用選擇性參數 -i。-i 選項可以在 inittab 模式下執行伺服器,因此,如果伺服器程序被終止或當機,inittab 將為您重新啟動伺服器。該選項也可防止伺服器將其本身放入後台程序中。
手動停止伺服器 (UNIX/Linux)
如果要使用 etc/inittab 檔案重新啟動伺服器,您必須從 /etc/inittab 中移除啟動伺服器的行,並鍵入 kill -1 1,然後再嘗試停止伺服器。否則,伺服器在停止後會自動重新啟動。
若要手動停止伺服器,請以 root 身份登入或使用伺服器的使用者帳號登入 (如果這就是您啟動伺服器的方式),然後在指令行上鍵入:
重新啟動伺服器 (Windows)
您可以通過下列方法重新啟動伺服器:
對於 Windows,執行下列步驟:
- 在 [控制台] 中,按兩下 [服務] 圖示。
- 捲動服務清單並選取用於您伺服器的服務。
- 核取 [自動] 以使您的電腦在每次啟動或重新開機時都啟動伺服器。
- 按一下 [OK]。
備註 您也可以使用 [服務] 對話方塊變更伺服器使用的帳號。如需有關變更伺服器所用帳號的更多資訊,請參閱變更使用者帳號 (UNIX/Linux)。
依預設,Web 伺服器會在啟動前提示管理員提供金鑰資料庫密碼。如果您希望能夠重新啟動無人看管的 Web 伺服器,則需要將該密碼儲存在 password.conf 檔案中。僅當您的系統受到適當保護時才能這樣做,以免洩漏該檔案和金鑰資料庫。
使用自動重新啟動公用程式 (Windows)
如果伺服器當機,它便會由監視伺服器的公用程式自動重新啟動。在安裝了除錯工具的系統上,如果伺服器當機,便會出現帶有除錯資訊的對話方塊。若要協助除錯伺服器 Plug-in API 程式 (例如,NSAPI 程式),您可以透過設定一個非常高的逾時值來停用自動啟動功能。您還可以使用登錄編輯程式關閉除錯對話方塊。
變更時間間隔 (Windows)
若要變更從啟動到伺服器能自動重新啟動之間的時間間隔,請執行下列步驟:
- 啟動登錄編輯程式。
- 選取您伺服器的鍵值 (在 [Registry Editor] 視窗的左側,位於 HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Enterprise\6.0 中)。
- 從 [編輯] 功能表中選擇 [新增值]。螢幕上會顯示 [新增鍵值] 對話方塊。
- 在 [值的名稱] 中,鍵入 MortalityTimeSecs。
- 從 [Data Type] 下拉式清單中選取 [REG_DWORD]。
- 按一下 [OK]。螢幕上會顯示 [編輯 DWORD 值] 對話方塊。
- 鍵入從啟動到伺服器能自動重新啟動之間的時間間隔 (用秒表示)。
間隔可以使用二進制、十進制或十六進制格式表示。
- 對您在上個步驟中輸入的值,按一下數字格式 (二進制、十進制或十六進制)。
- 按一下 [OK]。
在 [Registry Editor] 視窗的右側會出現用十六進制表示的 MortalityTimeSecs 值。
關閉除錯對話方塊 (Windows)
如果您安裝的應用程式 (如編譯程式) 修改了系統除錯設定,則在伺服器當機時,您會看到一個由系統產生的應用程式錯誤對話方塊。在您按一下 [OK] 之前,伺服器不會重新啟動。
若要關閉在伺服器當機時出現的除錯對話方塊,請執行下列步驟:
微調伺服器以提昇效能可以使用以下兩種方法微調執行緒限制:藉由編輯 magnus.conf 檔案進行微調或藉由 Server Manager 進行微調。
如果您是編輯 magnus.conf 檔案,則 RqThrottleMinPerSocket 為最小值,RqThrottle 是最大值。
最小限制是伺服器嘗試保留為 WaitingThreads 狀態的執行緒數。該數字僅是一個目標。處於該狀態的實際執行緒數可能稍大於或小於該值。預設值為 48。最大執行緒數表示可同時執行的作用中執行緒的最大數目 (硬性限制),它是制約效能提昇的瓶頸。其預設值為 128。
如果您使用的是 Server Manager,請執行以下步驟:
如需有關 RqThrottleMinPerSocket 和 RqThrottle 參數的更多資訊,請參閱「Sun ONE Web Server 6.1 Administrator's Configuration File Reference」。
如需有關這些設定的效能關係與其他的詳細資訊,請參閱「Sun ONE Web Server 6.1 Performance Tuning, Sizing, and Scaling Guide」。
編輯 magnus.conf 檔案Sun ONE Web Server 在啟動時查看 server_root/server_id/config 目錄中名為 magnus.conf 的檔案,以建立一組影響伺服器行為與配置的全域變數設定。Sun ONE Web Server 執行 magnus.conf 中定義的全部指令。您可以使用 Server Manager 中的 Magus Editor 編輯 magnus.conf 檔案中的某些設定。
如需有關 magnus.conf 檔案的完整描述和使用文字編輯程式編輯該檔案的更多資訊,請參閱「Sun ONE Web Server 6.1 Administrator's Configuration File Reference」和「Sun ONE Web Server 6.1 NSAPI Programmer's Guide」。
若要存取 Magnus Editor,請執行下列步驟︰
如需有關每個「Settings」頁面的更多資訊,請參閱線上說明中的 [Magnus Editor] 頁面。
增加與編輯偵聽套接字在伺服器能夠處理請求之前,它必須經由偵聽套接字接受請求,然後將請求導向至正確的虛擬伺服器。安裝 Sun ONE Web Server 時,將自動建立一個偵聽套接字 ls1。該偵聽套接字使用 IP 位址 0.0.0.0 以及您在安裝期間指定的作為 HTTP 伺服器連接埠號的連接埠號 (預設為 80)。您無法刪除預設的偵聽套接字。
您可以使用 Server Manager 的偵聽套接字表來編輯伺服器的偵聽套接字設定。若要使用該表格,請執行下列步驟︰
選擇 MIME 類型[Mime Types] 頁面可讓您編輯伺服器的 MIME 檔案。
MIME (多用途網際網路郵件延伸標準) 類型可控制郵件系統所支援的多媒體檔案類型。MIME 類型還指定特定伺服器檔案類型的副檔名,例如,指定可以作為 CGI 程式的檔案。
您無需為每個虛擬伺服器都建立單獨的 MIME 類型檔案。相反,您可以根據自己的需要建立任意數目的 MIME 類型,並使其與虛擬伺服器相關聯。依預設,伺服器上存在一個名為 mime.types 的 MIME 類型檔案,該檔案不能被刪除。該檔案可以使用絕對路徑。
若要使用 [MIME Types] 頁面,請執行下列步驟︰
如需更多資訊,請參閱線上說明中的 [Mime Settings] 頁面與第 13 章「使用虛擬伺服器」。
限定存取您可以使用 Server Manager 的 [Restrict Access] 頁面,控制對整個伺服器或伺服器某些部分 (即目錄、檔案、檔案類型) 的存取。當伺服器評估進來的請求之時,會根據名為存取控制項目 (ACE) 的規則階層決定是否存取,然後會使用匹配的項目來決定是允許還是拒絕該請求。每個 ACE 都會指定伺服器是否應該繼續到階層中的下一個 ACE。ACE 的集合稱為存取控制清單 (ACL)。當請求進入伺服器的時候,伺服器便會查找 vsclass.obj.conf (其中,vsclass 為虛擬伺服器的類別名稱) 以查看用於決定存取的 ACL 參照。依預設,伺服器具有一個包含多重 ACL 的 ACL 檔案。
您可以藉由 Administration Server 設定對全域內所有伺服器的存取控制,或者藉由 Server Manager 設定對特定伺服器實例內資源的存取控制。如需有關設定資源存取控制的更多資訊,請參閱
若要限定存取 Sun ONE Web Server,請執行下列步驟:
如需更多資訊,請參閱第 9 章「控制對伺服器的存取」和線上說明中的 [Restrict Access] 頁面。
復原配置設定[Restore Configuration] 頁面可讓您檢視配置檔案的備份複本,並復原至特定日期儲存的配置資料。
如需更多資訊,請參閱線上說明中的 [Restore Configuration] 頁面。
配置檔案快取記憶體Sun ONE Web Server 使用檔案快取記憶體以更快地提供靜態資訊。在先前版本的 Sun ONE Web Server 中,也提供快取加速器,可以將請求路由至檔案快取記憶體,但是現在不再使用快取加速器了。檔案快取記憶體包含有關檔案與靜態檔案內容的資訊。同時,它還快取用於加速處理伺服器剖析 HTML 的資訊。
依預設,檔案快取記憶體總處於開啟狀態。檔案快取記憶體的設定包含在名為 nsfc.conf 的檔案中。您可以使用 Server Manager 變更檔案快取記憶體的設定。
如需更多資訊,請參閱線上「Performance Tuning and Sizing Guide」,位於 http://docs.sun.com。
增加與使用執行緒池您可以使用執行緒池將一定數目的執行緒配置給特定的服務。
執行緒池的另一個作用就是用於執行 thread-unsafe Plug-in。透過將池定義為最多只能有一個執行緒,指定的服務功能便只能處理一項請求。
當您增加一個執行緒池時,需要指定的資訊包括執行緒的最小與最大數目、堆疊大小以及佇列大小。
如需更多資訊,請參閱線上「Performance Tuning and Sizing Guide」,位於 http://docs.sun.com。
本端執行緒池和一般執行緒池 (Windows)
在 Windows 上,您可以使用以下兩種類型的執行緒池:本端執行緒池 (NativePool) 和附加的一般執行緒池。
若要編輯本端執行緒池,請存取 Server Manager 中的 [Native Thread Pool] 頁面。
您可以根據自己的用途建立任意數目的一般執行緒池。若要建立一般執行緒池,請存取 Server Manager 中的 [Generic Thread Pools] 頁面。
執行緒池 (UNIX/Linux)
由於 UNIX/Linux 上的執行緒都是作業系統預先排程的 (與使用者預先排程恰好相反),因此,UNIX/Linux 使用者不需要使用 NativePool,也不提供用於編輯此項設定的 [Server Manager] 頁面。但是,UNIX/Linux 使用者仍可以建立執行緒池。若要建立執行緒池,請存取 Server Manager 中的 [Thread Pools] 頁面。
編輯執行緒池
一旦您增加了執行緒池,便可以藉由 Server Manager 變更執行緒池的設定值 (最小執行緒數目,最大執行緒數目等等)。
您可以在 vsclass.obj.conf 中編輯執行緒池的設定,其中,vsclass 為虛擬伺服器的類別名稱。
vsclass.obj.conf 中會出現以下執行緒池:
使用以下參數變更池:MinThreads、MaxThreads、QueueSize 以及 StackSize。
Windows 使用者總是可以使用 Server Manager 編輯本端池的設定。
使用執行緒池
執行緒池設定完畢之後,便可將其指定為某項特定服務的執行緒池來使用。
若要配置執行緒池,請移往 [Server Manager Preferences] 標籤並選取 [Thread Pool]。一旦配置了執行緒池,[Thread Pool] 清單便會顯示可用於您所指定之特定服務的執行緒池
您還可以使用 vsclass.obj.conf 中 load-modules 函數的 pool 參數來指定執行緒池,其中,vsclass 為虛擬伺服器的類別名稱。
此外,您可以對任一 NSAPI 函數使用 pool 參數,使得只有該函數能執行於您指定的池上。