Sun ONE logo      上一個      目錄      索引      下一個     

Sun ONE Application Server 7 管理員指南

第 15 章
使用虛擬伺服器

本章解釋如何使用 Sun ONE Application Server 設定和管理虛擬伺服器。如需關於配置虛擬伺服器內容設定的資訊,請參閱第 16 章「管理虛擬伺服器內容」

本章包含以下主題:


虛擬伺服器簡介

使用虛擬伺服器時,您可以藉由單一安裝的伺服器為公司或個人提供領域名稱、IP 位址以及某些伺服器監視功能。對於使用者而言,雖然您提供了硬體並維護虛擬伺服器,但看起來使用者好像使用的是自己的 Web 伺服器。

安裝非隨附式版本的 Sun ONE Application Server 時,將建立應用程式伺服器實例的預設虛擬伺服器。亦即,對於預設應用程式伺服器實例 server1 而言,也會同時建立名為 server1 的虛擬伺服器。如果您使用的是隨附式 Solaris 9 版本,則需要建立伺服器實例。建立伺服器實例時,也會建立同名的虛擬伺服器。對於您建立的每個附加應用程式伺服器實例,仍會建立虛擬伺服器。如需關於建立和配置虛擬伺服器的更多資訊,請參閱建立和配置虛擬伺服器。如需關於部署虛擬伺服器的更多資訊,請參閱部署虛擬伺服器

該虛擬伺服器可控制 Sun ONE Application Server 的 HTTP 功能,此功能在每個虛擬伺服器基礎之上可用。您也許不想使用多重虛擬伺服器,但仍需配置與您的應用程式伺服器實例一起建立的預設虛擬伺服器,以為該應用程式伺服器實例配置某些特性。

虛擬伺服器的設定儲存在目錄 instance_dir/config server.xml 檔案中的 virtual-server 元素內。如需關於該檔案的更多資訊,請參閱「Sun ONE Application Server Administrator's Configuration File Reference」

有關虛擬伺服器的某些資訊還儲存在其 obj.conf 檔案中。每個虛擬伺服器都有單獨的 obj.conf 檔案。

本章節包括下列主題:

HTTP 偵聽程式

伺服器與用戶端的連線發生於 HTTP 偵聽程式 (也稱為偵聽套接字) 上。您建立的每個 HTTP 偵聽程式都有 IP 位址、連接埠號、傳回伺服器名稱以及預設虛擬伺服器。如果您想讓 HTTP 偵聽程式在機器給定連接埠上的所有已配置 IP 位址上進行偵聽,請為 IP 位址使用 0.0.0.0、any、ANY 或 INADDR_ANY。如需關於建立和配置 HTTP 偵聽程式的更多資訊,請參閱建立和配置 HTTP 偵聽程式

安裝非隨附式版本的 Sun ONE Application Server 時,將自動建立一個 HTTP 偵聽程式 http-listener-1。安裝期間,此 HTTP 偵聽程式將使用 IP 位址 0.0.0.0 及您指定的作為 HTTP 伺服器連接埠號的連接埠號 (預設值為 80,或者如果您未以 root 使用者身份安裝,則在 UNIX 上預設值為 1024)。您無法刪除預設的 HTTP 偵聽程式。如果您使用多重虛擬伺服器,則您可將預設 HTTP 偵聽程式用於所有虛擬伺服器,或是建立多重 HTTP 偵聽程式。

若使用 Solaris 9 隨附的 Sun ONE Application Server,則在建立伺服器實例時將建立您的 HTTP 偵聽程式。該 HTTP 偵聽程式使用 IP 位址 0.0.0.0 以及您在建立實例時所指定的連接埠號。

由於 HTTP 偵聽程式為 IP 位址與連接埠號的組合,所以您的多重 HTTP 偵聽程式可以使用相同的 IP 位址和不同的連接埠號,或者使用不同的 IP 位址和相同的連接埠號。例如,您可以使用 1.1.1.1:81 和 1.1.1.1:82。另外,只要將您的機器配置為回應兩個位址的狀態,您便可使用 1.1.1.1:81 和 1.2.3.4:81。不過,如果使用 0.0.0.0 IP 位址 (在一個連接埠上的所有 IP 位址上偵聽),您便無法設定其他 IP 位址的 HTTP 偵聽程式 (在用於特定 IP 位址的同一個連接埠上偵聽)。例如,如果讓 HTTP 偵聽程式使用 0.0.0.0:80 (連接埠 80 上的所有 IP 位址),您便也無法建立使用 1.2.3.4:80 的 HTTP 偵聽程式。

每個 HTTP 偵聽程式還具有一個預設的虛擬伺服器,如果偵聽程式無法連線至請求中指定的虛擬伺服器,將向該預設虛擬伺服器發送請求。

另外,您可以指定 HTTP 偵聽程式中接受者執行緒 (有時稱為接受執行緒) 的數目。接受執行緒是等待連線的執行緒。執行緒接受連線並將其放入佇列中,在佇列中將由工作者執行緒接受這些連線。理想的做法為,您想擁有足夠多的接受執行緒,以便在發生新的請求時總有一個可用,但又需要數目相當少,以免給系統造成太重負擔。預設值為 1。最佳規則是讓系統上的每個 CPU 有一個接受執行緒。如果您發現效能受到損害,可以調整此值。

您還可以指定是否為 HTTP 偵聽程式啟用安全性,以及您將使用哪種安全性 (例如,哪種 SSL 及哪些密碼)。

虛擬伺服器

若要建立虛擬伺服器,必須首先決定您想要哪種虛擬伺服器。您可以使用基於 IP 位址的虛擬伺服器,或基於 URL 主機的虛擬伺服器。若要建立虛擬伺服器,您需指定的僅僅為虛擬伺服器 ID、一個或多個 HTTP 偵聽程式、一台或多台 URL 主機。

本章節包括下列主題:

虛擬伺服器類型

所有虛擬伺服器都有指定的 URL 主機。不過,虛擬伺服器也可能與基於 HTTP 偵聽程式的 IP 位址相關聯。如果虛擬伺服器的 HTTP 偵聽程式在特定 IP 位址上偵聽,此虛擬伺服器將稱為基於 IP 位址的虛擬伺服器。

如果數個虛擬伺服器在同一個 IP 位址上偵聽,將由 URL 主機識別它們,因而其成為基於 URL 主機的虛擬伺服器。

發生新的請求時,伺服器會根據 IP 位址或主機標頭中的值,決定將請求發送至哪個虛擬伺服器。它會首先評估 IP 位址。如需更多資訊,請參閱用於請求處理的虛擬伺服器選取

基於 IP 位址的虛擬伺服器

若要讓單個電腦具有多重 IP 位址,您必須透過作業系統對映這些位址,或者提供其他卡。若要透過作業系統設定多重 IP 位址,請使用網路控制台 (Windows) 或 ifconfig 公用程式 (UNIX)。請注意,對於不同的平台,使用 ifconfig 的指示也不同。請參考作業系統說明文件以取得更多資訊。

透過建立一個於特定 IP 位址上偵聽的 HTTP 偵聽程式,便可建立基於 IP 位址的虛擬伺服器。然後便可關聯作為 HTTP 偵聽程式預設虛擬伺服器的虛擬伺服器。如需關於虛擬伺服器部署方法的更多資訊,請參閱部署虛擬伺服器

基於 URL 主機的虛擬伺服器

透過提供唯一的 URL 主機,便可設定基於 URL 主機的虛擬伺服器。主機請求標頭的內容用於將伺服器導向至正確的虛擬伺服器。

例如,如果您想為客戶 (aaabbbccc) 設定虛擬伺服器,以使每位客戶擁有個別的網域名稱,則您首先要配置 DNS 以確認每位客戶的 URL (www.aaa.com、 www.bbb.comwww.ccc.com) 都可解析為您要使用的 HTTP 偵聽程式之 IP 位址。然後,您可以將每個虛擬伺服器的 URL 主機設定為正確設定 (例如,www.aaa.com)。請注意,您可將主機對映至 /etc/hosts 檔案中的 IP 位址。

您可以擁有任意多個與 HTTP 偵聽程式相關聯的基於 URL 主機之虛擬伺服器。

由於基於 URL 主機的虛擬伺服器使用主機請求標頭將使用者導向正確頁面,所以並非所有的用戶端軟體都與其共同執行。不支援 HTTP 主機標頭的舊用戶端軟體不起作用。這些用戶端將收到用於 HTTP 偵聽程式的預設虛擬伺服器。

預設虛擬伺服器

使用主機請求標頭選取基於 URL 主機的虛擬伺服器。如果一般使用者的瀏覽器不傳送主機標頭,或伺服器找不到指定的主機標頭,則 HTTP 偵聽程式的預設虛擬伺服器將處理請求。

並且,對於基於 IP 位址的虛擬伺服器,如果 Sun ONE Application Server 找不到指定的 IP 位址,HTTP 偵聽程式的預設虛擬伺服器會處理請求。您可以配置預設虛擬伺服器,以從特殊文件根目錄下發送錯誤訊息或伺服器頁面。


請勿混淆用於 HTTP 偵聽程式的預設虛擬伺服器與安裝伺服器時所建立的預設虛擬伺服器。預設虛擬伺服器是用於預設應用程式伺服器實例的虛擬伺服器。用於 HTTP 偵聽程式的預設虛擬伺服器是您指定的任何預設虛擬伺服器。


建立 HTTP 偵聽程式時,請指定預設虛擬伺服器。您隨時可以變更預設虛擬伺服器。

obj.conf 檔案

依預設,每個虛擬伺服器都有儲存虛擬伺服器設定的單獨 obj.conf 檔案。若您透過管理介面或指令行介面變更設定,這些變更將在配置檔案內 (包含虛擬伺服器的 obj.conf 檔案) 自動執行。所有 obj.conf 檔案都位於 instance_dir/config 目錄之下。每當本指南提及「obj.conf 檔案」時,均指所有 obj.conf 檔案或所述虛擬伺服器的 obj.conf 檔案。

缺少字首的名為 obj.conf 的檔案是 Sun ONE Application Server 用來為每個虛擬伺服器建立 obj.conf 檔案的範本。編輯該檔案不會影響任何現有的虛擬伺服器,但會影響隨後建立的所有虛擬伺服器。如需關於直接編輯 obj.conf 檔案的更多資訊,請參閱「Sun ONE Application Server Administrator's Configuration File Reference」

依預設,每個作用中的 obj.conf 檔案都將命名為 virtual_server_name-obj.conf。由於伺服器實例的預設虛擬伺服器均以該實例命名,所以,當您首次建立伺服器實例時,其 obj.conf 檔案將命名為 instance_name-obj.conf。透過管理介面編輯或直接編輯這些檔案之一,會變更虛擬伺服器的配置。

用於請求處理的虛擬伺服器選取

在伺服器能夠處理請求之前,其必須經由 HTTP 偵聽程式接受請求,再將請求導向至正確的虛擬伺服器。本章節論述決定虛擬伺服器的方法。

如果將虛擬伺服器配置給 SSL HTTP 偵聽程式,在伺服器啟動時,將針對憑證主旨式樣核取其 hosts 屬性,如果它們不相符,將產生一條警告並寫入至伺服器日誌。

決定虛擬伺服器後,Sun ONE Application Server 會執行虛擬伺服器的 obj.conf 檔案。如需關於伺服器如何決定在 obj.conf 中執行哪些指令的詳細資訊,請參閱「Sun ONE Application Server Administrator's Configuration File Reference」

文件根

文件根 (有時稱為主文件目錄) 是一個中央目錄,包含要用於遠端用戶端的所有虛擬伺服器檔案。

文件根目錄可提供限制存取虛擬伺服器檔案的簡單方法。它也會使得很容易移動文件至新目錄 (也許在不同磁碟上),而不會變更任何 URL,這是因為 URL 中指定的路徑與主文件目錄相應。

例如,如果文件目錄為 install_dir/docs,則諸如 http://www.sun.com/products/info.html 的請求會讓伺服器在 install_dir/docs/info.html 中尋找檔案。如果您變更文件根 (亦即移動所有檔案與子目錄),則您只需變更虛擬伺服器使用的文件根,而不要將所有 URL 對映至新目錄或以某種方式通知用戶端在新目錄中查找。

預設 Sun ONE Application Server 實例 (server1) 的文件根將成為在 server1 應用程式伺服器實例內建立的虛擬伺服器文件根。可以為您建立的每個虛擬伺服器置換該目錄。


以虛擬伺服器使用 Sun ONE Application Server 功能

Sun ONE Application Server 有許多功能,如 SSL 和存取控制,您可以配合虛擬伺服器來使用。下列各節描述功能並提供在哪裡尋找更多資訊的資訊。

本章節包括下列主題:

配合虛擬伺服器使用 SSL

如果您要在虛擬伺服器上使用 SSL,大多數情況下您可以使用基於 IP 位址的虛擬伺服器。通常採用的連接埠為 443。在基於 URL 主機的虛擬伺服器上很難使用 SSL,這是因為 Sun ONE Application Server 必須先讀取請求,然後才可決定將請求發送至哪個 URL 主機。伺服器讀取請求後,交換安全資訊的初始交握已經發生。

唯一的異常是當所有基於 URL 主機的虛擬伺服器具有同一個 SSL 配置,包括使用「萬用字元憑證」的同一個伺服器憑證。如需更多資訊,請參閱「Sun ONE Application Server Administrator's Guide to Security」

配合虛擬伺服器執行 SSL 的一種方法是具備兩個 HTTP 偵聽程式,一個使用 SSL 並偵聽連接埠 443,另一個不使用 SSL。使用者通常透過非 SSL HTTP 偵聽程式存取虛擬伺服器。若需要使用安全作業事件,使用者可以按一下網頁上的按鈕以啟動安全作業事件。然後,請求將通過安全的 HTTP 偵聽程式。

由於 SSL 作業事件大大慢於非 SSL 作業事件,所以此設計將 SSL 作業事件限制為僅必要的作業事件。在其餘時間使用較快的非 SSL 連線。

如需藉由 Sun ONE Application Server 和虛擬伺服器設定和使用安全性的更多資訊,請參閱「Sun ONE Application Server Administrator's Guide to Security」。如需配合虛擬伺服器執行 SSL 配置範例的圖解,請參閱範例 2︰安全伺服器

使用存取日誌檔和伺服器日誌檔

存取日誌檔是記錄 HTTP 存取虛擬伺服器的檔案。建立新的虛擬伺服器時,依預設,存取日誌檔是與應用程式伺服器實例相同的日誌檔。許多情況下,您會希望每個個別的虛擬伺服器都有自己的日誌檔。若要如此設定,您可以變更每個虛擬伺服器的日誌路徑。如果要將所有虛擬伺服器存取作業記錄到同一個存取日誌檔中,您可以變更伺服器實例的記錄設定,以便將虛擬伺服器 ID 納入日誌檔中。如需關於變更應用程式伺服器實例記錄的更多資訊,請參閱第 5 章「使用記錄功能」

伺服器日誌檔是記錄資訊訊息和錯誤的檔案。建立新的虛擬伺服器時,依預設,其日誌檔與應用程式伺服器實例日誌檔相同。您可以變更每個虛擬伺服器的日誌檔。

配合虛擬伺服器使用存取控制

藉由虛擬伺服器,您可以在每個虛擬伺服器基礎上設定存取控制。您甚至可以配置它,從而讓每個虛擬伺服器可透過 LDAP 資料庫使用使用者認證和群組認證。如需更多資訊,請參閱「Sun ONE Application Server Administrator's Guide to Security」。

配合虛擬伺服器使用 CGI

您可以在虛擬伺服器上使用 CGI。您需要在每個虛擬伺服器上設定將儲存 CGI 的目錄,並設定用於 CGI 的檔案類型。如需關於 CGI 的更多資訊,請參閱「Sun ONE Application Server Developer's Guide to Web Applications」


建立和配置 HTTP 偵聽程式

在伺服器能夠處理請求之前,其必須經由 HTTP 偵聽程式接受請求,然後將請求導向至正確的虛擬伺服器。建立伺服器實例時 (在安裝期間或以後),將自動建立一個 HTTP 偵聽程式 http-listener-1。該 HTTP 偵聽程式使用 IP 位址 0.0.0.0 以及您指定的作為應用程式伺服器連接埠號的連接埠號。您無法刪除預設的 HTTP 偵聽程式。

本章節包含以下主題:

建立 HTTP 偵聽程式

使用管理介面建立 HTTP 偵聽程式的步驟︰

  1. 在左窗格中,針對應用程式伺服器實例,開啟 [HTTP Server]。
  2. 按一下 [HTTP Listeners]。
  3. 按一下 [New]。
  4. 填寫欄位。
  5. HTTP 偵聽程式必須具備唯一的連接埠號和 IP 位址組合。您可以使用 IPV4 或 IPV6 位址。如果您要為基於 IP 位址的虛擬伺服器建立 HTTP 偵聽程式,請為 HTTP 偵聽程式指定特定的 IP 位址。

    [Return Server Name] 欄位指定伺服器發送至用戶端的 URL 中的主機名稱。這會影響伺服器自動產生的 URL;但不會影響儲存在伺服器中目錄和檔案的 URL。如果您的伺服器使用一個別名,則該名稱應為此別名。

    如果未首先找到其他虛擬伺服器,則預設虛擬伺服器便是將回應針對 HTTP 偵聽程式之請求的虛擬伺服器。如需更多資訊,請參閱用於請求處理的虛擬伺服器選取

    必須先啟用 HTTP 偵聽程式,其才能接受請求。

    您也可以啟用安全性並配置該 HTTP 偵聽程式的進階特性。若要指定 IPV6,請在 [Family] 欄位內使用值 inet6。如果該值為 inet6,IPv4 位址在伺服器日誌中將含有字首 ::ffff:。

  6. 按一下 [OK]。

請注意,建立 HTTP 偵聽程式時,您必須在預設虛擬伺服器欄位內輸入現有的虛擬伺服器。可以使用透過伺服器實例建立的虛擬伺服器,然後在建立其他虛擬伺服器後,返回並變更它 (如果願意)。

若要藉由指令行介面建立 HTTP 偵聽程式,請使用 asadmin 公用程式的 create-http-listener 指令。若要取得所有已建立 HTTP 偵聽程式的清單,請使用 list-http-listeners 指令。

若要建立 HTTP 偵聽程式,請使用下列語法︰

asadmin create-http-listener --user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] --address address [--instance instancename] --listenerport listener_port --defaultvs virtual_server --servername server_name [--family family] [--acceptorthreads acceptor_threads] [--blockingenabled blocking_enabled] [--securityenabled security_enabled] [--enabled enabled] listener_id

如需關於指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」

編輯 HTTP 偵聽程式設定

使用 管理介面 編輯 HTTP 偵聽程式設定的步驟︰

  1. 在左窗格中,針對應用程式伺服器實例,開啟 [HTTP Server]。
  2. 開啟 [HTTP Listeners]。
  3. 按一下您要編輯的 HTTP 偵聽程式。
  4. 進行所需的變更,然後按一下 [Save]。

如需更多資訊,請參閱線上輔助說明。

您也可以使用指令行介面中的 asadmin 公用程式,來編輯 HTTP 偵聽程式。使用 get 指令可取得目前設定,使用 set 指令可將其設定為新值。

若要取得 HTTP 偵聽程式所有屬性的值,請執行︰

asadmin> get server_instance.http-listener.http_listener_name.*

例如,若要取得預設 HTTP 偵聽程式的值,請執行︰

asadmin> get server1.http-listener.http-listener-1.*

若要設定任何屬性的值,請執行︰

asadmin> set server_instance.http-listener.http_listener_name.attribute_name=value

例如,若要將屬性 defaultVirtualServer 設定為用於 http-listener-1server2,請執行︰

asadmin> set server1.http-listener.http-listener-1.defaultVirtualServer=server2

如需關於指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」

刪除 HTTP 偵聽程式

使用管理介面刪除 HTTP 偵聽程式的步驟︰

  1. 在左窗格中,針對應用程式伺服器實例,開啟 [HTTP Server]。
  2. 按一下 [HTTP Listeners]。
  3. 按一下您要刪除的 HTTP 偵聽程式旁邊的核取方塊。
  4. 按一下 [Delete]。

若要藉由指令行介面刪除 HTTP 偵聽程式,請使用 asadmin 公用程式的 delete-http-listener 指令,使用下列語法︰

asadmin delete-http-listener ---user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] --instance instance httplistener_id

如需關於指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」


建立和配置虛擬伺服器

設定 HTTP 偵聽程式後,便可建立和使用虛擬伺服器。

本章節包含以下主題:

建立虛擬伺服器

使用管理介面建立虛擬伺服器的步驟︰

  1. 在左窗格中,針對應用程式伺服器實例,開啟 [HTTP Server]。
  2. 按一下 [Virtual Servers]。
  3. 按一下 [New]。
  4. 填寫必需欄位及選擇性欄位。
  5. 按一下 [Save]。

若要藉由指令行介面建立虛擬伺服器,請使用 asadmin 公用程式的 create-virtual-server 指令,使用下列語法︰

asadmin create-virtual-server --user username ---user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] [--instance instancename] --hosts hosts --mime mime_types_file [--httplisteners http-listeners] [--defaultwebmodule default_web_module] [--configfile config_file] [--defaultobj default_object] [--state state] [--acls acls] [--acceptlang accept_language] [--logfile logfile] [--property (name=value)[:name=value]*] virtual_server_id

如需關於指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」

建立虛擬伺服器時,可以輸入下列類型的設定︰

必需的設定

虛擬伺服器的必需設定包括名稱 (ID) 以及 URL 主機。

您也必須指定 MIME 類型檔案。MIME 類型檔案包含檔案副檔名至檔案類型的對映。例如,透過 MIME 類型檔案,您可以指定將所有以 .cgi 結尾的檔案視為 CGI 檔案。

您無需為每個虛擬伺服器建立單獨的 MIME 類型檔案。相反,您可以依需要建立任意數量的 MIME 類型檔案,並將其與虛擬伺服器關聯起來。預設 MIME 類型檔案稱為 mime1,檔名為 mime.types

如需關於 MIME 類型檔案的更多資訊,請參閱配置 MIME 類型

選擇性一般設定

除了必需欄位,您還可以設定選擇性欄位。

HTTP 偵聽程式

HTTP 偵聽程式可處理與虛擬伺服器的連線。您必須指定一個連線,以便讓遠端用戶端存取虛擬伺服器。

ACL

套用於虛擬伺服器的存取控制清單 (ACL)。如需更多資訊,請參閱「Sun ONE Application Server Administrator's Guide to Security」

接受語言標頭

當用戶端使用 HTTP 1.1 與伺服器聯絡時,其可以發送描述用戶端接受的語言之標頭資訊。您可以配置伺服器來剖析該語言資訊。

例如,如果以日文和英文儲存文件,您可以選擇剖析接受語言標頭。當使用日文作為接受語言標頭的用戶端聯絡伺服器時,其會收到日文版頁面。當使用英文作為接受語言標頭的用戶端聯絡伺服器時,其會收到英文版頁面。

如果您不支援多種語言,則不應該剖析接受語言標頭。

狀態

此狀態是虛擬伺服器的狀態,與應用程式伺服器實例是「開啟」還是「關閉」無關。如果該頁面上顯示的虛擬伺服器狀態為「開啟」,且應用程式伺服器實例也是「開啟」,則虛擬伺服器僅能接受請求。

這也適合用於預設應用程式伺服器實例的預設虛擬伺服器。如果關閉應用程式伺服器實例,您的預設虛擬伺服器仍將設定為「開啟」,但不會接受連線。

有效狀態為「開啟」、「關閉」或「停用」。如果將虛擬伺服器設定為「開啟」,其將能夠接受連線。

您無法關閉或停用用於應用程式伺服器實例的預設虛擬伺服器。

日誌檔

日誌檔 (亦稱為伺服器日誌檔) 是記錄資訊訊息和錯誤的檔案。存取日誌檔是記錄 HTTP 存取虛擬伺服器的檔案。

文件根

文件根 (有時稱為主文件目錄) 是一個中央目錄,包含要用於遠端用戶端的所有虛擬伺服器檔案。如需更多資訊,請參閱文件根

Web 應用程式設定

Web 應用程式集合了 Servlet、JavaServer 頁面、HTML 文件,以及其他可能包含影像檔、壓縮歸檔檔案與其他資料的 Web 資源。Web 應用程式可以封裝到歸檔檔案中 (WAR 檔案),或存在於開放式目錄結構中。

Sun ONE Application Server 7 支援 Servlet 2.3 API 規格,允許 Servlet 和 JSP 納入到 Web 應用程式中。另外,Sun ONE Application Server 7 還支援非 J2EE 應用程式元件 SHTML 和 CGI。

建立虛擬伺服器時,可以為虛擬伺服器指定預設 Web 模組。預設 Web 模組將回應無法解析至該虛擬伺服器部署的其他 Web 模組的所有請求。如果您不指定預設 Web 模組,將使用環境根為空的 Web 模組。如果沒有環境根為空的 Web 模組,將建立並使用系統的預設 Web 模組。

部署 Web 應用程式時,請指定虛擬伺服器。一旦部署了 Web 應用程式,其便會出現於可用 Web 模組清單中,可選擇作為虛擬伺服器的預設 Web 模組。若將 Web 模組指定為虛擬伺服器的預設 Web 模組,則虛擬伺服器會自動加入至 Web 應用程式的虛擬伺服器清單。

CGI 設定

在您建立虛擬伺服器時設定的 CGI 設定可監管使用者及群組 CGI 程式執行為,CGI 執行開始前要變更為的目錄 (chroot) 以及 chroot 之後要變更為的目錄。

在 UNIX 上,您還可以設定 nice,其為用於決定 CGI 程式相對於伺服器之優先權的增量。通常,以 nice 值 0 執行伺服器並且 nice 增量處於 0 (CGI 程式以和伺服器相同的優先權執行) 與 19 (CGI 程式以大大低於伺服器的優先權執行) 之間。

HTTP 服務品質設定

服務品質指的是您為虛擬伺服器設定的效能限制。例如,ISP 可能會依據允許虛擬伺服器使用的頻寬大小,對虛擬伺服器收取不同數額的費用。可以執行 (即僅允許指定的頻寬和最大連線數) 或不執行這些設定。如果未執行設定,當超出限制時,訊息將記錄到日誌檔中。如需更多資訊,請參閱使用 CLI 管理作業事件服務

除了透過管理介面變更這些設定外,您還可以使用指令行介面的 asadmin 公用程式。若要使用指令行介面的 asadmin 公用程式配置服務品質,請使用以下指令︰

這些指令使用以下語法︰

asadmin create-http-qos --user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] [--virtualserver virtual_server_id] [--bwlimit bandwidth_limit] [--enforcebwlimit enforce_bandwidth_limit] [--connlimit connection_limit] [--enforceconnlimit enforce_connection_limit] instance_name

asadmin delete-http-qos --user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] [--virtualserver virtual_server_id] instance_name

如果您指定虛擬伺服器,則這些指令可為該虛擬伺服器建立或刪除服務品質資訊。如果您不指定虛擬伺服器,則指令會影響伺服器實例。

如需關於指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」

編輯虛擬伺服器設定

設定虛擬伺服器後,您便可對其進行編輯。如需關於編輯虛擬伺服器設定的資訊,請參閱下列主題︰

使用管理介面編輯一般設定

虛擬伺服器的一般設定指建立虛擬伺服器後即可以設定的設定。若要變更設定,請執行以下步驟︰

  1. 在左窗格中,針對應用程式伺服器實例,開啟 [HTTP Server]。
  2. 開啟 [Virtual Servers]。
  3. 按一下您要編輯的虛擬伺服器。
  4. 進行需要的變更。
  5. 可以變更的區域包括服務品質設定、加入 ACL、與內容相關的設定 (如文件根和接受語言標頭)、CGI 相關設定 (如使用者、群組、nice、及 chroot 設定) 以及預設 Web 模組。

  6. 按一下 [Save]。

如需關於以上某些設定的更多資訊,請參閱建立和配置虛擬伺服器。另請參閱線上輔助說明。

使用指令行介面編輯一般設定

您也可以使用指令行介面中的 asadmin 公用程式,來編輯這些設定。使用 get 指令可取得目前設定,使用 set 指令可將其設定為新值。

若要經由虛擬伺服器取得所有屬性,請使用以下語法︰

asadmin> get instance_name.virtual-server.vserver_id.*

例如︰

asadmin> get server1.virtual-server.vs1.*

如果您想取得應用程式伺服器實例 server1 的所有屬性,請使用以下語法︰

asadmin> get server1.virtual-server.server1.*

若要設定一個屬性,如接受語言標頭,請使用以下語法︰

asadmin> set server1.virtual-server.server1.virtualserver.acceptLanguage=false


您可以使用指令行介面,為 [General] 頁面上的所有欄位設定值。不過,您不能使用指令行介面為其他標籤頁面上的欄位設定值,如 CGI 標籤上的頁面。


如需關於指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」

編輯 CGI 設定

如需關於編輯 CGI 的資訊,請參閱「Sun ONE Application Server Developers Guide to Web Applications」

編輯文件處理設定、文件目錄設定以及 HTTP/HTML 設定

如需關於變更這些設定的資訊,請參閱第 16 章「管理虛擬伺服器內容」

刪除虛擬伺服器

刪除虛擬伺服器的步驟︰

  1. 在管理介面左窗格中,針對應用程式伺服器實例,開啟 [HTTP Server]。
  2. 按一下 [Virtual Servers]。
  3. 按一下您要刪除的虛擬伺服器旁邊的核取方塊。
  4. 按一下 [Delete]。
  5. 使用管理介面,無法刪除所有虛擬伺服器。

若要藉由指令行介面刪除虛擬伺服器,請使用 asadmin 公用程式的 delete-virtual-server 指令。

用法如下︰

asadmin delete-virtual-server --user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] --instance instance virtualserver_id

如需關於指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」


部署虛擬伺服器

Sun ONE Application Server 的虛擬伺服器架構非常靈活。一個應用程式伺服器實例可以具有任意多個安全與非安全 HTTP 偵聽程式。您可以將任意多個虛擬伺服器與這些 HTTP 偵聽程式關聯起來。可以使用基於 IP 位址的與基於 URL 主機的兩種虛擬伺服器。

每個虛擬伺服器都可以 (並非必須) 具有自己的 ACL 清單、自己的 mime.types 檔案以及自己的 Java Web 應用程式集。

此設計提供了為各種應用程式配置伺服器的最大靈活性。下列範例論述 Sun ONE Application Server 可用的某些可能配置。

範例 1︰預設配置

預設配置是一個應用程式伺服器實例。該應用程式伺服器實例只有一個 HTTP 偵聽程式,其在為您電腦配置的任何 IP 位址上的連接埠 80、1024 或您選取的任何其他連接埠上偵聽。

您本機網路中的某個機制可以為您電腦所配置的每個位址建立名稱至位址的對映。在下面的範例中,電腦有兩個網路介面︰位址 127.0.0.1 上的回送介面 (即使沒有網路卡也存在該介面) 以及位址 10.0.0.1 上的乙太網路介面。

經由 DNS,名稱 example.com 將對映至 10.0.0.1。HTTP 偵聽程式配置為在該機器配置的任何位址之連接埠 80 上 ("0.0.0.0:80") 偵聽。

由於預設配置中沒有基於 IP 位址的虛擬伺服器,所以唯一的 HTTP 偵聽程式便是預設的 HTTP 偵聽程式。所有連線均連接至虛擬伺服器 server1。

圖 15-1 預設配置

該圖顯示應用程式伺服器實例的預設虛擬伺服器配置。只有一個 HTTP 偵聽程式和一個虛擬伺服器。

在此配置中,下列連線到達伺服器並由虛擬伺服器 VS1 提供服務。

將此配置用於傳統 HTTP 伺服器。您無需加入附加虛擬伺服器或 HTTP 偵聽程式。透過變更 server1 的設定,可以配置伺服器的設定。

範例 2︰安全伺服器

如果您要在預設配置中使用 SSL,只需將 HTTP 偵聽程式變更為安全模式即可。

也可以加入配置為 0.0.0.0:443 的新的安全 HTTP 偵聽程式,並將 server1 與此新的 HTTP 偵聽程式關聯起來。虛擬伺服器現在具有兩個 HTTP 偵聽程式,一個使用安全 HTTP 偵聽程式,一個不使用。此時,您的伺服器將使用和不使用 SSL 提供相同的內容,即 http://example.com/ 與 https://example.com/ deliver the same content。

圖 15-2 安全伺服器

該圖顯示用於伺服器實例的安全伺服器配置,使用兩個 HTTP 偵聽程式 (一個為安全的、一個為非安全的) 以及一個虛擬伺服器。

請注意,SSL 參數將附加至 HTTP 偵聽程式。

範例 3︰企業網路主機作業

Sun ONE Application Server 的更複雜配置是該伺服器針對企業網路的部署來接待一些虛擬伺服器。例如,您有三個內部網站,員工可以從中查看其他使用者的電話號碼、查看校園地圖並向資訊服務部門追蹤其請求狀況。先前 (在此範例中),這些網站部署在三台不同的電腦上,網站名稱 phone.example.com、maps.example.com、is.example.com 分別對映至這三台電腦。

為使硬體和管理耗用時間降到最低,您要將這三個網站合併為一個應用程式伺服器,部署在機器 example.com 上。您可以採用以下兩種方法進行設定︰使用基於 URL 主機或基於 IP 位址的虛擬伺服器。兩種伺服器均有明顯的優勢和劣勢。

圖 15-3 使用基於 URL 主機之虛擬伺服器的企業網路主機作業

該圖顯示基於 URL 主機的虛擬伺服器。

雖然基於 URL 主機的虛擬伺服器容易設定,但其具有以下劣勢︰

基於 IP 位址的虛擬伺服器優勢如下︰

劣勢有︰

兩種配置均需要為三個名稱設定名稱至位址的對映。在基於 IP 位址的配置中,每個名稱都對映至不同位址。必須設定主機,才能收到所有這些位址上的連線。在基於 URL 主機的配置中,所有名稱都可以對映至機器原本具有的同一個位址。

圖 15-4 使用基於 IP 位址之虛擬伺服器的企業網路主機作業

該圖顯示基於 IP 位址的虛擬伺服器。

範例 4︰大量主機作業

大量主機作業指的是您可以啟用許多低流量虛擬伺服器的配置。例如,管理許多低流量個人首頁的 ISP 將屬於此類。虛擬伺服器通常基於 URL 主機。

圖 15-5 大量主機作業

該圖顯示使用一個 HTTP 偵聽程式和許多基於 URL 主機之虛擬伺服器的大量主機作業。

請注意,預設虛擬伺服器 server1 仍然存在。



上一個      目錄      索引      下一個     


Copyright 2003 Sun Microsystems, Inc. 。版權所有。