Sun Java System Application Server 9.1 高可用性管理指南

第 5 章 配置 HTTP 負載平衡

本章說明 HTTP 負載平衡器外掛程式。其中包含以下主題︰

如需有關其他類型負載平衡的資訊,請參閱第 10 章, Java 訊息服務的負載平衡和容錯移轉第 11 章, RMI-IIOP 負載平衡和容錯移轉

本節討論 Application Server 內隨附之 HTTP 負載平衡器外掛程式的使用方式。另一個 HTTP 負載平衡選項會搭配 Application Server 使用 Sun Secure Application Switch,做為以硬體為基礎的負載平衡解決方案。如需有關配置此解決方案的指導文件,請參閱文章 Clustering and Securing Web Applications: A Tutorial

負載平衡器外掛程式的新增功能

Sun Java System Application Server 9.1 已經增強負載平衡器的功能,將透過下列功能提供更大的彈性且更容易使用。

自動套用

Application Server 可將您從「管理主控台」對負載平衡器配置所做的變更,自動透過網路傳送到 Web 伺服器配置目錄。使用舊版的應用程式伺服器時,必須先匯出負載平衡器配置,然後再複製到 Web 伺服器配置目錄。

加權循環

負載平衡器可改善 HTTP 請求的分配機制。管理員可使用「weight」屬性指定如何按比例將請求路由至實例。例如,假設叢集有兩個實例,且管理員將權數 100 指定給實例 x,並將權數 400 指定給實例 y。現在於每 100 個請求中,20 個請求將前往實例 x,80 個請求則前往實例 y。

使用者定義的負載平衡

Application Server 可讓管理員定義自訂策略來分配 HTTP 請求。自訂策略可以定義負載平衡器外掛程式必須使用的負載平衡演算法。換言之,管理員可定義哪個 Application Server 實例將處理 HTTP 請求。若要使用此功能,管理員需要開發共用程式庫 (例如,使用該程式庫來計算提供給它的內送請求標頭),並遵守特定條件選取可處理此請求的實例。此共用程式庫將由負載平衡器載入。

共用程式庫必須實作 loadbalancer.h (可從 appserver_install_dir/lib/install/templates 下取得) 中定義的介面。

Application Server 也隨附 roundrobin.c 模組範例,此模組可實作基本的循環演算法。管理員可將此模組範例當成範本,以建立共用程式庫。此模組範例也可從 appserver_install_dir/lib/install/templates 下取得。

Procedure配置使用者定義的負載平衡

  1. roundrobin.cappserver_install_dir/lib/install/templates 複製到工作目錄 (例如:/home/user/workspacelb)

  2. 使用 ANSI C/C++ 編譯器 (例如 Sun Studio 編譯器或 GCC) 編譯 roundrobin.c。請務必建立動態的共用程式庫,而非靜態的可執行檔。

    1. 如果使用「Sun Studio CC 編譯器」,請使用下列指令來編譯:

      cc -G -I<appserver install dir>/lib/install/templates roundrobin.c -o roundrobin.so
    2. 如果使用 GCC,請使用此指令編譯共用程式庫:

      gcc -shared -I<appserver install dir>/lib/install/templates 
      roundrobin.c -o roundrobin.so

      備註 –

      如果發生重新配置錯誤,請使用「-fPIC」選項重新編譯。此指令格式為:

      gcc -shared -fPIC -I <appserver install dir>/lib/install/templates 
      roundrobin.c -o roundrobin.so

      在 Microsoft Windows 上,請從 http://www.redhat.com/services/custom/cygwin 下載 Cygwin 公用程式。此公用程式隨附 GCC。使用下列 GCC 指令可建立動態連結程式庫 (dll):

      gcc -shared -I<appserver_install_dir>/lib/install/templates 
      roundrobin.c -o roundrobin.dll
  3. 變更 loadbalancer.xml 以指向新建立的模組。這是編輯後的 loadbalancer.xml 外觀。

    <cluster name="cluster1" policy="user-defined" 
    policy-module="home/user/workspacelb/roundrobin.so">
  4. roundrobin.so 複製到 Web 伺服器實例目錄。

  5. 如果 Web 伺服器未執行,請予以啟動,或等到負載平衡器重新配置。

HTTP 負載平衡器的工作方式

負載平衡器嘗試在多個 Application Server 之獨立或叢集的實例間平均分散工作負荷量,從而增加了系統的整體流量。

HTTP 負載平衡器可使部署到 Java EE 應用程式伺服器的服務具有高可用性。此舉能在偵測到無法使用原始提供服務的實例,或者此實例運作不正常無法處理請求時,將階段作業請求容錯移轉至另一個伺服器實例。如果要使 HTTP 階段作業資訊持續運作,您必須使用叢集設定檔、安裝並設定 HADB,同時配置 HTTP 階段作業的持續性。如需更多資訊,請參閱第 9 章, 配置高可用性階段作業持續性和容錯移轉


備註 –

負載平衡器不處理大於 8K 的 URI/URL。


HTTP 負載平衡演算法

Sun Java System Application Server 負載平衡器預設會使用居留式循環演算法對內送 HTTP 和 HTTPS 請求進行負載平衡。

新 HTTP 請求傳送到負載平衡器外掛程式後,系統將基於簡單的循環方案,將該請求轉寄至某個 Application Server 實例。如果是階段作業型應用程式的請求,則此類請求也將包括新階段作業的請求。相同用戶端對相同的階段作業型應用程式所提出的後續請求,都會視為指定或居留式請求,且負載平衡器會將該請求路由至相同的實例。因此稱為居留式循環。非階段作業型應用程式請求以及階段作業型應用程式的第一個請求,稱為未指定請求。居留特性是透過 Cookie 或明確採用 URL 重寫功能達成。負載平衡器會自動決定居留方法。

負載平衡器外掛程式使用以下方法來決定階段作業居留:

負載平衡器外掛程式首先從居留式資訊確定此請求先前轉寄到哪個實例。如果發現該實例正常,負載平衡器外掛程式會將請求轉寄至該特定 Application Server 實例。因此,指定階段作業的所有請求都將會傳送到同一個 Application Server 實例。

設定 HTTP 負載平衡

本節說明如何設定負載平衡器外掛程式,其中包含以下小節︰

設定負載平衡的先決條件

配置負載平衡器之前,您必須︰


備註 –

如果您的部署方案是將 Application Server 實例及負載平衡器安裝在不同網路網域,則必須使用 --agentproperties 選項來指定完全合格的網域名稱,以建立節點代理程式。例如,asadmin create-node-agent --agentproperties remoteclientaddress=machine1.server.example.com test-na。如需有關此指令的更多資訊,請參閱 create-node-agent(1)


設定負載平衡的程序

使用管理主控台 GUI 或 asadmin 工具可在您的環境中配置負載平衡。下列各節提供了更多資訊。

Procedure使用管理主控台設定負載平衡

  1. 建立負載平衡器配置。

    在管理主控台的左框架中,依序按一下 [HTTP 負載平衡器] 及 [新建]。在 [新建 HTTP 負載平衡器] 頁面中,提供裝置詳細資訊並選取目標叢集或實例。

  2. 針對要受負載平衡器管理的叢集或獨立伺服器實例新增參照。

    若要使用管理主控台執行此動作,請在左框架中,按一下 [HTTP 負載平衡器] 節點,再於節點下按一下所需的負載平衡器。開啟 [目標] 標籤、按一下 [管理目標],然後在 [管理目標] 頁面上選取所需的目標。

    如果您建立了具有目標的負載平衡器配置,並且該目標是負載平衡器參照的唯一叢集或獨立伺服器實例,請跳過此步驟。

  3. 啟用負載平衡器所參照的叢集或獨立伺服器實例。

    若要使用管理主控台啟用獨立伺服器實例,請在左框架中,按一下 [HTTP 負載平衡器] 節點,再於節點下按一下所需的負載平衡器。開啟 [目標] 標籤,然後在 [目標] 表格中,按一下要啟用的實例旁的核取方塊,再按一下 [啟用]。

    若要啟用叢集中的伺服器實例,請如上所述選取負載平衡器,再於 [目標] 標籤中按一下所需的叢集。現在請開啟 [實例] 標籤、選取所需的實例,然後從 [負載平衡器動作] 下拉式清單中選取 [啟用負載平衡]。

    asadmin enable-http-lb-server 是啟用叢集或獨立實例的等效指令。

  4. 啟用需負載平衡的應用程式。

    若要使用管理主控台執行此動作,請如上所述開啟 [目標] 標籤,然後按一下所需的叢集。現在請開啟 [應用程式] 標籤,選取所需的應用程式,然後從 [更多動作] 下拉式清單中選取 [負載平衡器啟用]。

    這些應用程式必須已在負載平衡器所參照的叢集或獨立實例上部署並可以使用。啟用應用程式以用於負載平衡,與啟用應用程式以加以使用,是兩個獨立的步驟。

  5. 建立運作狀態檢查程式

    若要使用管理主控台執行此動作,請為上一個步驟中所述的負載平衡器開啟 [目標] 標籤,然後按一下 [目標] 表格中的 [編輯運作狀態檢查程式]。

    運作狀態檢查程式監視工作異常的伺服器實例,以便在這些伺服器實例重新正常工作時,負載平衡器可以向它們傳送新的請求。


    備註 –

    如果使用 Sun Java System Web Server (6.1 或 7.0),則您不必執行步驟 6 及步驟 7,則可用一個步驟就產生負載平衡器配置檔案,並透過網路將資料傳送到 Web 伺服器。

    若要使用管理主控台執行此動作,請按一下所需的負載平衡器,然後開啟 [匯出] 標籤。在此標籤中,按一下 [立即套用變更]。如此會將資料傳送到 Web 伺服器配置目錄。


  6. 產生負載平衡器配置檔案。

    若要使用管理主控台執行此動作,請按一下負載平衡器,然後開啟 [匯出] 標籤。在此標籤中,按一下 [立即匯出]。

    此指令可產生要與 Sun Java System Application Server 隨附之負載平衡器外掛程式配合使用的配置檔案。

  7. 將負載平衡器配置檔案複製到 Web 伺服器的 config 目錄,該目錄中儲存了負載平衡器外掛程式配置檔案。


    備註 –

    若要在一個步驟中,自動產生負載平衡器配置檔案,並透過網路將資料傳送給 Web 伺服器,您需要配置 Web 伺服器的 SSL 設定,並匯入 DAS 憑證。如需有關配置 Sun Java System Web Server 的更多資訊,請參閱配置 Sun Java System Web Server


Procedure使用 asadmin 工具設定負載平衡

  1. 建立負載平衡器配置。

    若要執行此動作,請使用 asadmin create-http-lb-config 指令。


    備註 –

    您只需使用一個 asadmin 指令 (create-http-lb) 及其選項就能執行下列所有步驟 (步驟 2 到步驟 7)。如需有關此指令的更多資訊,請參閱 create-http-lb(1)


  2. 針對要受負載平衡器管理的叢集或獨立伺服器實例新增參照。

    若要執行此動作,請使用 asadmin create-http-lb-ref 指令。如需有關此指令的更多資訊,請參閱 create-http-lb-ref(1)

    如果您建立了具有目標的負載平衡器配置,並且該目標是負載平衡器參照的唯一叢集或獨立伺服器實例,請跳過此步驟。

  3. 啟用負載平衡器所參照的叢集或獨立伺服器實例。

    若要執行此動作,請使用 asadmin enable-http-lb-server 指令。如需有關此指令的更多資訊,請參閱 enable-http-lb-server(1)

  4. 啟用用於負載平衡的應用程式。

    若要執行此動作,請使用 asadmin enable-http-lb-application 指令。如需有關此指令的更多資訊,請參閱 enable-http-lb-application(1)

    這些應用程式必須已在負載平衡器所參照的叢集或獨立實例上部署並可以使用。啟用應用程式以用於負載平衡,與啟用應用程式以加以使用,是兩個獨立的步驟。

  5. 建立運作狀態檢查程式。

    若要執行此動作,請使用 asadmin create-http-health-checker 指令。如需有關此指令的更多資訊,請參閱 create-http-health-checker(1)

    運作狀態檢查程式監視工作異常的伺服器實例,以便在這些伺服器實例重新正常工作時,負載平衡器可以向它們傳送新的請求。


    備註 –

    如果使用 Sun Java System Web Server (6.1 或 7.0),則您不必執行步驟 6 及 7,則可用一個步驟就產生負載平衡器配置檔案,並透過網路將資料傳送到 Web 伺服器。

    若要使用 asadmin 工具執行此動作,請將 create-http-lb 指令的 --autoapplyenabled 選項設為 true。如需有關此指令的更多資訊,請參閱 create-http-lb(1)


  6. 產生負載平衡器配置檔案。

    若要執行此動作,請使用 asadmin export-http-lb-config 指令。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)。此指令可產生要與 Sun Java System Application Server 隨附之負載平衡器外掛程式配合使用的配置檔案。

  7. 將負載平衡器配置檔案複製到 Web 伺服器的 config 目錄,該目錄中儲存了負載平衡器外掛程式配置檔案。


    備註 –

    若要用一個步驟自動產生負載平衡器配置檔案,並透過網路將資料傳送給 Web 伺服器,您需要配置 Web 伺服器的 SSL 設定,並匯入 DAS 憑證。 如需有關配置 Sun Java System Web Server 的更多資訊,請參閱配置 Sun Java System Web Server


HTTP 負載平衡器部署

您可以使用不同的方式配置負載平衡器 (視目標和環境而定),如以下小節中所述︰

使用叢集伺服器實例

部署負載平衡器的最常用方法是使用伺服器實例的一個或多個叢集。依預設,叢集中的所有實例都具有相同的配置,而且這些實例中都部署了相同的應用程式。負載平衡器可在伺服器實例之間分散工作負荷量,並可發出從異常實例向正常實例執行容錯移轉的請求。如果您已配置了 HTTP 階段作業持續性,則在對請求執行容錯移轉時,階段作業資訊會持續。

如果有多個叢集,則可在各個叢集間平衡請求的負荷量,但容錯移轉只能在單一叢集的實例之間進行。在負載平衡器中使用多個叢集可簡化應用程式的輪替式升級。如需更多資訊,請參閱在維持可用性的情況下升級應用程式


備註 –

您無法平衡叢集和獨立實例之間的請求負載量。


使用多個獨立實例

也可將負載平衡器配置為使用多個獨立的實例,並在這些實例之間對請求進行負載平衡和容錯移轉。但是,在此配置中,您必須手動確定獨立實例具有同質環境,並且這些實例已部署了相同的應用程式。由於叢集會自動維護同質環境,因此大多數情況下,使用叢集會更加簡便有效。

配置負載平衡器

負載平衡器配置是在 domain.xml 檔中維護。負載平衡器的配置方式非常靈活:

這些小節更詳細地說明如何建立、修改和使用負載平衡器配置:

在 DAS 上配置 HTTP 負載平衡器

在 Application Server 9.1 上,您可以使用管理主控台或 asadmin 指令 create-http-lb 在 DAS 上建立負載平衡器配置。下列步驟說明如何執行這些動作。如需有關 asadmin 指令 create-http-lbdelete-http-lblist-http-lbs 的更多資訊,請參閱「Sun Java System Application Server 9.1 Reference Manual」

在管理主控台中,將左框架向下捲動,按一下 [HTTP 負載平衡器] 節點,然後在右側的 [HTTP 負載平衡器] 頁面上按一下 [新建]。在 [新建 HTTP 負載平衡器] 頁面中,提供下列主控負載平衡器之機器的詳細資訊。

欄位 

說明 

名稱 

負載平衡器配置的名稱。 

已啟用 

按一下 [已啟用] 核取方塊,可將負載平衡器配置變更自動推送至 Web 伺服器配置目錄中的實體負載平衡器。 

主機 

安裝了 Web 伺服器實例的伺服器。 

管理連接埠 

Web 伺服器實例所使用的管理連接埠號。 

代理主機 

安裝了代理伺服器實例的伺服器。 

代理連接埠 

代理伺服器所使用的連接埠號。 

您也可以使用 asadmin 指令 create-http-lb-config 來建立負載平衡器配置。表 5–1 會說明這些參數。請參閱「Sun Java System Application Server 9.1 Reference Manual」來取得有關指令 create-http-lb-configdelete-http-lb-configlist-http-lb-configs 的更多資訊。

表 5–1 負載平衡器配置參數

參數 

說明 

response timeout 

伺服器實例需傳回回應的時限 (以秒為單位)。如果在該時間段內未收到任何回應,則認為伺服器處於異常狀態。預設值為 60。

HTTPS routing 

對負載平衡器的 HTTPS 請求是否產生對伺服器實例的 HTTPS 或 HTTP 請求。如需更多資訊,請參閱配置 HTTPS 路由

reload interval 

檢查負載平衡器配置檔案 loadbalancer.xml 是否有變更的時間間隔。當檢查偵測到變更時,系統將重新載入配置檔案。值為 0 時會停用重新載入。如需更多資訊,請參閱啟用動態重新配置

monitor 

是否對負載平衡器啟用監視功能。 

routecookie 

負載平衡器外掛程式用於記錄路由資訊的 Cookie 名稱。HTTP 用戶端必須支援 Cookie。如果您的瀏覽器設定為在儲存 Cookie 前詢問,則 Cookie 的名稱為 JROUTE。

target 

負載平衡器配置的目標。如果指定目標,則相當於增加對該目標的參照。目標可為叢集或獨立實例。

建立 HTTP 負載平衡器參照

當您在負載平衡器中建立對獨立伺服器或叢集的參照時,會將該伺服器或叢集增加至負載平衡器所控制的目標伺服器和叢集的清單中。您仍需要先啟用所參照的伺服器或叢集,才會負載平衡對其所做的請求。如果建立了帶有目標的負載平衡器配置,則系統已增加了作為參照的該目標。

若要使用管理主控台建立參照,請在左框架中,按一下 [HTTP 負載平衡器] 節點,然後於節點下按一下所需的負載平衡器。開啟 [目標] 標籤,按一下 [管理目標],然後在 [管理目標] 頁面上選取所要的目標。此外,也可以使用 create-http-lb-ref 建立參照。您必須提供負載平衡器配置名稱和目標伺服器實例或叢集。

若要刪除參照,請使用 delete-http-lb-ref。必須先使用 disable-http-lb-server 停用已參照的伺服器或叢集,才能刪除此參照。

如需有關這些指令的更多資訊,請參閱「Sun Java System Application Server 9.1 Reference Manual」

啟用用於負載平衡的伺服器實例

建立對伺服器實例或叢集的參照後,請使用 enable-http-lb-server 啟用伺服器實例或叢集。如果在建立負載平衡器配置時使用某伺服器實例或叢集作為目標,則必須啟用該伺服器實例或叢集。若要使用管理主控台執行此動作,請在左框架中,按一下 [HTTP 負載平衡器] 節點,再於節點下按一下所要的負載平衡器。現在請開啟 [目標] 標籤,然後在 [目標] 表格中,按一下要啟用的實例旁的核取方塊,再按一下 [啟用]。

如需有關此指令的更多資訊,請參閱 enable-http-lb-server(1)

啟用用於負載平衡的應用程式

負載平衡器管理的所有伺服器均必須具有同質配置,包括部署到這些伺服器的應用程式集必須相同。部署某個應用程式並啟用 (在部署期間或之後) 此應用程式以進行存取後,您必須啟用該應用程式以進行負載平衡。如果沒有為負載平衡啟用應用程式,則將無法對該應用程式的請求執行負載平衡和容錯移轉,即使已對該應用程式部署到的伺服器的請求執行了負載平衡和容錯移轉。

啟用應用程式時,請指定應用程式名稱和目標。如果負載平衡器管理了多個目標 (例如,兩個叢集),請在所有目標上啟用該應用程式。

若要使用管理主控台啟用應用程式,請在左框架中,按一下 [HTTP 負載平衡器] 節點,然後於節點下按一下所需的負載平衡器。如上所述開啟 [目標] 標籤,然後按一下所需的叢集。現在請開啟 [應用程式] 標籤,選取所需的應用程式,再從 [其他動作] 下拉式清單中選取 [負載平衡器啟用]。如果要從指令行執行此動作,可以使用指令 asadmin enable-http-lb-application。如需更多資訊,請參閱 enable-http-lb-application(1)

如果部署了新的應用程式,您也必須啟用該應用程式以進行負載平衡並再次匯出負載平衡器配置。

建立 HTTP 運作狀態檢查程式

負載平衡器的運作狀態檢查程式會定期檢查所有標記為異常的已配置 Application Server 實例。運作狀態檢查程式不是必需的,但如果沒有運作狀態檢查程式,或者停用了運作狀態檢查程式,異常實例的定期運行狀況檢查就不會執行。負載平衡器無法判斷運作不正常的實例在何時開始正常運作。

負載平衡器的運作狀態檢查機制使用 HTTP 與 Application Server 實例進行通訊。運作狀態檢查程式將 HTTP 請求傳送給指定的 URL 並等待回應。HTTP 回應標頭中的狀態碼在 100 到 500 之間時表示實例處於正常狀態。


備註 –

如果您的部署方案把負載平衡器置於叢集前端,而叢集中的實例使用安全連接埠並啟用用戶端憑證驗證功能,則運作狀態檢查程式將無法檢查這些實例的運作狀態。因此,那些實例一律會標記成異常,且不會將請求傳送給它們。


建立運作狀態檢查程式

若要指定運作狀態檢查程式特性,可使用管理主控台或 asadmin create-http-health-checker 指令。若要在管理主控台中執行此動作,請瀏覽到 [HTTP 負載平衡器] 節點,將其展開並選取負載平衡器。然後開啟 [目標] 標籤,並在 [目標] 表格中,為所需的目標按一下 [編輯運作狀態檢查程式] 連結。指定下列參數。

表 5–2 運作狀態檢查程式參數

參數 

說明 

預設 

Load Balancer 

按一下 [已啟用] 核取方塊,使選取的伺服器可進行負載平衡。 

False/已停用 

Disable Timeout 

此伺服器停用後到達靜止狀態的分鐘數。 

30 分鐘 

url 

指定負載平衡器檢查的偵聽程式之 URL 以確定其運作狀態。 

“/” 

interval 

指定實例的運作狀態檢查發生的間隔 (以秒為單位)。指定為 0 將停用運作狀態檢查程式。 

30 秒 

timeout 

指定逾時間隔 (以秒為單位),必須在該時間間隔內獲得回應才能認為偵聽程式運作正常。 

10 秒 

如果 Application Server 實例標記為異常,運作狀態檢查程式將輪詢異常實例以確定實例的狀態是否已變為正常。運作狀態檢查程式使用指定的 URL 來檢查所有異常的 Application Server 實例,以確定這些異常的 Application Server 實例是否已返回到正常狀態。

如果運作狀態檢查程式發現某個異常實例已變為正常,該實例將被增加到正常實例的清單中。

如需有關此指令的更多資訊,請參閱 create-http-health-checker(1)delete-http-health-checker(1)

運作正常實例的其他運作狀態檢查特性

create-http-health-checker 建立的運作狀態檢查程式僅檢查異常實例。若要定期檢查運作正常的實例,請在匯出的 loadbalancer.xml 檔案中設定某些其他特性。


備註 –

您必須將 loadbalancer.xml 匯出之後,才能以手動編輯方式設定這些特性。沒有等效的 asadmin 指令可以使用。


若要檢查運作正常實例,請設定以下特性。

表 5–3 運作狀態檢查程式手動特性

特性 

定義 

active-healthcheck-enabled

True/False 標幟,用於表示是否要 Ping 正常伺服器實例以確定這些實例是否正常。若要 Ping 伺服器實例,請將標幟設定為 True。 

number-healthcheck-retries

指定在將未回應的伺服器實例標記為異常之前,負載平衡器的運作狀態檢查程式對該伺服器實例執行 Ping 指令的次數。有效範圍在 1 到 1000 之間。設定的預設值為 3。 

透過編輯 loadbalancer.xml 檔案來設定特性。例如︰

<property name="active-healthcheck-enabled" value="true"/>
<property name="number-healthcheck-retries" value="3"/>

若您增加這些特性,然後進行編輯並再次匯出 loadbalancer.xml 檔案,新匯出的配置不會包含這些特性。您必須對新匯出的配置再次增加這些特性。

匯出負載平衡器配置檔案

Sun Java System Application Server 隨附的負載平衡器外掛程式使用名為 loadbalancer.xml 的配置檔案。配置負載平衡器後,可將配置詳細資訊從 domain.xml 匯出到 loadbalancer.xml 檔案。您可以使用管理主控台或 asadmin 公用程式來執行此動作。

Procedure使用管理主控台匯出負載平衡器配置

  1. 瀏覽到 [HTTP 負載平衡器] 節點並將其展開。

  2. 按一下所需的負載平衡器。

    所有負載平衡器配置詳細資訊會顯示在 [一般]、[設定] 及 [目標] 標籤中。

  3. 開啟 [匯出] 標籤並按一下 [立即匯出]。

  4. 將已匯出的負載平衡器配置檔案複製到 Web 伺服器的配置目錄。

Procedure使用 asadmin 工具匯出負載平衡器配置

  1. 使用 asadmin 指令 export-http-lb-config 匯出 loadbalancer.xml 檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

    匯出特定負載平衡器配置的 loadbalancer.xml 檔案。您可以指定路徑和其他檔案名稱。如果未指定檔名,則該檔案會命名為 loadbalancer.xml. load-balancer-config-name。若您未指定路徑,則會在 domain-dir/generated 目錄中建立檔案。

    若要在 Windows 上指定路徑,請將路徑加上引號。例如, "C:\Sun\AppServer\loadbalancer.xml"

  2. 將已匯出的負載平衡器配置檔案複製到 Web 伺服器的配置目錄。

    例如,對於 Sun Java System Web Server,該位置通常為 web-server-root/config

    Web 伺服器配置目錄中的負載平衡器配置檔案必須命名為 loadbalancer.xml。如果您的檔案使用其他名稱,例如 loadbalancer.xml. load-balancer-config-name,則必須重新命名該檔案。

變更負載平衡器配置

如果您透過建立或刪除對伺服器的參照、部署新的應用程式、啟用或停用伺服器或應用程式等方法來變更負載平衡器配置,則請重新匯出負載平衡器配置檔案並將其複製到 Web 伺服器的 config 目錄。如需更多資訊,請參閱匯出負載平衡器配置檔案

負載平衡器外掛程式將根據負載平衡器配置中指定的重新載入間隔,定期檢查有無已更新的配置。在指定的時間值後,如果負載平衡器發現新的配置檔案,則它將開始使用新配置。

啟用動態重新配置

透過動態重新配置,負載平衡器外掛程式會定期檢查有無已更新的配置。

若要啟用動態重新配置,請執行以下步驟:


備註 –

如果負載平衡器在嘗試重新配置時遇到硬碟讀取錯誤,它將使用記憶體中目前的配置。負載平衡器還確定了在覆寫現有配置之前,已修改的配置資料與 DTD 相容。

如果遇到磁碟讀取錯誤,相關的警告訊息會記錄至 Web 伺服器的錯誤記錄檔中。

Sun Java System Web Server 的錯誤記錄位於以下位置: web-server-install-dir/web-server-instance/logs/


停用 (靜止) 伺服器實例或叢集

在因任何原因而停止 Application Server 之前,實例應該完成正在處理的請求。正常停用伺服器實例或叢集的程序被稱為靜止。

負載平衡器使用以下策略來靜止 Application Server 實例:

Procedure停用某個伺服器實例或叢集

  1. 執行 asadmin disable-http-lb-server,設定逾時 (以分鐘為單位)。如需有關此指令的更多資訊,請參閱 disable-http-lb-server(1)

  2. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

  3. 將匯出的配置複製到 Web 伺服器的 config 目錄。

  4. 停止該伺服器實例或叢集。

停用 (靜止) 應用程式

在取消部署 Web 應用程式之前,應讓應用程式完成正在處理的請求。正常停用應用程式的程序稱為靜止。靜止應用程式時,您可指定逾時時間。依據逾時時間,負載平衡器會使用以下策略靜止應用程式︰

Procedure停用應用程式

  1. 使用 asadmin disable-http-lb-application,並指定以下內容︰

    • 逾時 (以分鐘為單位)。

    • 要停用的應用程式之名稱。

    • 要在其上停用應用程式的目標叢集或實例。

    如需有關此指令的更多資訊,請參閱 disable-http-lb-application(1)

  2. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

  3. 將匯出的配置複製到 Web 伺服器的 config 目錄。

配置 HTTP 和 HTTPS 容錯移轉

如果 HTTP/HTTPS 階段作業所連線的原始 Application Server 實例變為不可用,負載平衡器外掛程式會將這些階段作業容錯移轉到其他 Application Server 實例上。本小節介紹如何配置負載平衡器外掛程式,以啟用 HTTP/HTTPS 路由和階段作業容錯移轉。

HTTPS 路由

負載平衡器外掛程式將所有內送的 HTTP 或 HTTPS 請求路由至 Application Server 實例。然而,如果啟用了 HTTPS 路由,則負載平衡器外掛程式會將 HTTPS 請求僅轉寄給使用 HTTPS 連接埠的 Application Server。HTTPS 路由是針對新請求和居留式請求而執行的。

如果收到了 HTTPS 請求且沒有正在進行的階段作業,負載平衡器外掛程式將選取使用已配置的 HTTPS 連接埠的可用 Application Server 實例,並將請求轉寄到該實例。

在正在進行的 HTTP 階段作業中,如果收到對同一個階段作業的新 HTTPS 請求,則使用在 HTTP 階段作業期間儲存的階段作業和居留式資訊來路由 HTTPS 請求。新的 HTTPS 請求將路由到在此 HTTPS 連接埠上處理上一個 HTTP 請求的同一伺服器。

配置 HTTPS 路由

create-http-lb-config 指令的 httpsrouting 選項,用於控制是否為參與負載平衡的所有應用程式伺服器開啟 HTTPS 路由功能。如果此選項設定為 false,所有 HTTP 和 HTTPS 請求都將作為 HTTP 請求進行轉寄。如果設定為 true,HTTPS 將做為 HTTPS 請求進行轉寄。建立新的負載平衡器配置時,請設定 HTTPS 路由,或者以後使用 asadmin set 指令加以變更。


備註 –

已知問題

負載平衡器對 HTTP/HTTPS 請求處理具有以下限制。

透過負載平衡器使用重新導向

使用重新導向將請求從一個 URL 重新導向另一個 URL。例如,使用重新導向將使用者傳送至不同的網站 (例如從舊版應用程式重導向至較新版本),或是從 HTTP 重新導向至 HTTPS,或是從 HTTPS 重新導向至 HTTP。您可以在應用程式中以多種方式啟用重新導向 (例如,以 Servlet 為基礎的重新導向,web.xml 重新導向)。然而,如果要從負載平衡器傳送重新導向 URL,可能需要對 Application Server 或負載平衡器進行其他配置。請注意,重新導向和使用 HTTPS 路由轉寄的請求不同。使用重新導向時,請將 httpsrouting 設定為 false。如果將 HTTPS 請求配置成需轉寄至 HTTP,請使用HTTPS 路由

下列特性會影響重新導向:HTTP 服務或 HTTP 偵聽程式的 authPassthroughEnabledproxyHandler 特性,以及 loadbalancer.xml 檔案中的 rewrite-location 特性。

authPassthroughEnabled 特性

當 Application Server authPassthroughEnabled 特性設定為 true 時,則會以自訂請求標頭將有關原始用戶端請求的資訊 (例如用戶端 IP 位址、SSL 金鑰大小,以及認證的用戶端憑證鏈) 傳送至 HTTP 偵聽程式。如果您安裝了硬體加速器,authPassThroughEnabled 特性會讓您利用硬體加速器加快 SSL 認證的進行。在負載平衡器上配置硬體加速器,比在每個叢集的 Application Server 實例上進行配置更為容易。


注意 – 注意 –

只有在 Application Server 受防火牆保護後,才能將 authPassthroughEnabled 設定為 true。


使用 asadmin set 指令來設定 HTTP 服務或個別 HTTP 偵聽程式上的 authPassthroughEnabled 特性。個別 HTTP 偵聽程式的設定優先於 HTTP 服務的設定。

如果要在所有的 HTTP/HTTPS 偵聽程式上設定 authPassthroughEnabled 特性,請使用下列指令:

asadmin set cluster-name-config.http-service.property.authPassthroughEnabled=true

如果要在個別的偵聽程式上進行設定,請使用下列指令:

asadmin set cluster-name-config.http-service.http-listener. listener-name.property.authPassthroughEnabled=true

proxyHandler 特性

Application Server 的代理伺服器處理程式負責擷取遭代理伺服器 (在此例中指的是負載平衡器) 攔截、並轉寄至應用程式伺服器之原始用戶端請求的相關資訊,同時負責將此資訊提供給做為用戶端請求之目標的 Web 應用程式 (部署於應用程式伺服器上)。如果代理伺服器的截取遭 SSL 終止,代理伺服器處理程式會擷取並提供有關原始請求的其他資訊,例如原始請求是否為 HTTPS 請求,以及 SSL 用戶端認證是否啟用。只有當 authPassThroughEnabled 設定為 true 時,才使用 proxyHandler 屬性。

代理伺服器處理程式會檢查內送請求中是否有自訂請求標頭,而代理伺服器就是藉由該自訂請求標頭傳送和原始用戶端請求相關的資訊,並使用標準的 ServletRequest API 向 Application Server 上的 Web 應用程式提供這項資訊。

代理伺服器處理程式實作可透過 proxyHandler 特性,在 HTTP 服務層級上進行全域配置,或是針對個別的 HTTP 偵聽程式進行配置,而該特性的值會指定 com.sun.appserv.ProxyHandler 抽象類別之實作的完全合格類別名稱。可進行配置的代理伺服器處理程式實作允許 Application Server 搭配任何代理伺服器,只要代理伺服器處理程式實作知道 HTTP 請求的標頭名稱,並了解其值的格式,而代理伺服器就是以此方式傳送與原始用戶端請求相關的資訊。

Application Server 的代理伺服器處理程式會從請求標頭讀取並剖析 SSL 憑證鏈。此舉讓後端 Application Server 實例得以擷取原始用戶端請求 (遭到終止 SSL 的代理伺服器所攔截;該代理伺服器在此指的是負載平衡器) 的相關資訊。您可以使用預設的代理伺服器處理程式設定,或是使用 HTTP 服務或 HTTP/HTTPS 偵聽程式的 proxyHandler 特性自行加以配置。proxyHandler 特性會針對該偵聽程式或所有偵聽程式所使用的 com.sun.appserv.ProxyHandler 抽象類別之自訂實作,指定完全合格類別名稱。

此抽象類別的實作會檢視自訂請求標頭的指定請求,而代理伺服器就是透過該自訂請求標頭,將原始用戶端請求的相關資訊傳送至 Application Server 實例,並將該資訊傳回至其呼叫者。預設實作會從名為 Proxy-ip 的 HTTP 請求標頭讀取用戶端 IP 位址、從名為 Proxy-keysize 的 HTTP 請求標頭讀取 SSL 金鑰大小,並從名為 Proxy-auth-cert 的 HTTP 請求標頭讀取 SSL 用戶端憑證鏈。Proxy-auth-cert 值必須包含 BASE-64 編碼的用戶端憑證鏈且無 BEGIN CERTIFICATE 和 END CERTIFICATE 邊界,並以 % d% a 取代 \n

只有當 authPassThroughEnabled 設定為 true 時,才能使用這項特性。如果您在個別的 HTTP 或 HTTPS 偵聽程式上設定 proxyHandler 特性,該特性會覆寫所有偵聽程式的預設設定。

使用 asadmin set 指令來設定 HTTP 服務或個別 HTTP 偵聽程式上的 proxyHandler 特性。

如果要在所有的 HTTP/HTTPS 偵聽程式上設定 proxyHandler 特性,請使用下列指令:

asadmin set cluster-name-config.http-service.property.proxyHandler= classname

如果要在個別的偵聽程式上進行設定,請使用下列指令:

asadmin set cluster-name-config.http-service.http-listener. listener-name.property.proxyHandler= classname

rewrite-location 特性

如果設定為 true,rewrite-location 特性就會重寫原始的請求資訊,並納入通訊協定 (HTTP 或 HTTPS)、主機和連接埠資訊。依預設,rewrite-location 特性會設定為 true,以維持與先前 Application Server 發行版本的向下相容性。

您無法經由 asasmin create-http-lb-configasadmin set 指令取得 rewrite-location 特性。如果要使用這項特性,請在匯出負載平衡器配置後,將該特性手動增加至 loadbalancer.xml 檔案。例如,將下列特性增加至所匯出的 loadbalancer.xml 檔案:

<property name="rewrite-location" value="false"/>

設定 rewrite-location 特性時,請記住下列要點:

配置等冪 URL

等冪請求是一種在重試時不會在應用程式中造成任何變更或不一致的請求。在 HTTP 中,某些方法 (例如 GET) 是等冪的,而其他方法 (例如 POST) 則不是。重試等冪 URL 不會導致伺服器上或資料庫中的值發生變更。唯一的差異在於使用者收到的回應會有所不同。

等冪請求的範例包括搜尋引擎查詢和資料庫查詢。基礎原則是重試不會導致資料的更新或修改。

若要增強已部署應用程式的可用性,請在負載平衡器所服務的所有 Application Server 實例上,將環境配置成等冪 HTTP 請求失敗時必須重試。此選項用於唯讀請求 (例如,重試搜尋請求)。

請在 sun-web.xml 檔案中配置等冪 URL。當您匯出負載平衡器配置時,等冪 URL 資訊將自動增加到 loadbalancer.xml 檔案中。

如需有關配置等冪 URL 的更多資訊,請參閱「Sun Java System Application Server 9.1 Developer’s Guide」中的「Configuring Idempotent URL Requests」

配置多個 Web 伺服器實例

Sun Java System Application Server 安裝程式不允許在單一機器上安裝多個負載平衡器外掛程式。若要在單一叢集或多個叢集中的單一機器上安裝多個帶有負載平衡器外掛程式的 Web 伺服器,需要手動執行一些步驟來配置負載平衡器外掛程式。

Procedure配置多個 Web 伺服器實例

  1. 配置新的 Web 伺服器實例以使用負載平衡器外掛程式。

    如需詳細指示,請參閱配置 Sun Java System Web Server

  2. 從現有 Web 伺服器實例的 config 目錄中,將 DTD 檔案 sun-loadbalancer_1_1.dtd 複製到新實例的 config 目錄中。

  3. 設定負載平衡器配置檔案。或者︰

    • 複製現有負載平衡器配置。

      使用現有負載平衡器配置,從現有 Web 伺服器實例的 config 目錄中,將 loadbalancer.xml 檔案複製到新實例的 config 目錄中。

    • 建立新的負載平衡器配置:

      1. 使用 asadmin create-http-lb-config 建立新的負載平衡器配置。

      2. 使用 asadmin export http-lb-config 將新配置匯出至 loadbalancer.xml 檔案中。

      3. 將該 loadbalancer.xml 檔案複製至新 Web 伺服器的 config 目錄中。

        如需有關建立負載平衡器配置並將其匯出至 loadbalancer.xml 檔案的資訊,請參閱在 DAS 上配置 HTTP 負載平衡器

在維持可用性的情況下升級應用程式

將應用程式升級至新版本但使用者仍可使用應用程式的作法,即稱為輪替式升級。在升級過程中,小心管理這兩個版本的應用程式,不但可以確保應用程式的目前使用者在無中斷的情況下完成作業,同時可讓新使用者不需設定即可取得新的應用程式版本。使用輪替式升級時,使用者不會察覺正在進行升級。

應用程式相容性

依據兩個應用程式版本之間的變更大小,輪替式升級會造成不同程度的困難。

如果變更很小 (例如對靜態文字和影像的變更),則此應用程式的兩個版本可以相容,並可在相同叢集中同時執行。

相容的應用程式必須︰

您可以在單一叢集或多個叢集中執行相容應用程式的輪替式升級。如需更多資訊,請參閱在單一叢集中升級

如果應用程式的兩個版本不滿足上述所有條件,則應用程式會被視為不相容。在某個叢集中執行不相容的應用程式版本會毀壞應用程式資料,並導致階段作業容錯移轉無法正常執行。該問題取決於不相容性的類型和程度。好的做法是透過建立要向其部署新版本應用程式的「隱式叢集」,來升級不相容的應用程式,然後緩慢靜止舊叢集和應用程式。如需更多資訊,請參閱升級不相容的應用程式

應用程式開發者和管理員是確定應用程式版本是否相容的最佳人選。如有疑問,請假設版本不相容,因為這是最安全的方法。

在單一叢集中升級

如果未與任何其他叢集共用叢集配置,則可以對部署至單一叢集的應用程式執行輪替式升級。

Procedure在單一叢集中升級應用程式

  1. 儲存舊版本的應用程式或備份網域。

    若要備份網域,請使用 asadmin backup-domain 指令。如需有關此指令的更多資訊,請參閱 backup-domain(1)

  2. 關閉叢集的動態重新配置 (如果已啟用)。

    從管理主控台執行此動作:

    1. 展開配置節點。

    2. 按一下叢集配置的名稱。

    3. 在 [配置系統特性] 頁面中,取消核取 [已啟用動態重新配置] 方塊。

    4. 按一下 [儲存]

    或者,使用以下指令︰

    asadmin set --user user --passwordfile password-file cluster-name-config.dynamic-reconfiguration-enabled=false

  3. 將已升級的應用程式重新部署到目標 domain 中。

    如果使用管理主控台進行重新部署,網域將自動成為目標。如果使用 asadmin,請指定目標 domain。由於已停用動態重新配置,因此舊應用程式將繼續在叢集上執行。

  4. 使用 asadmin enable-http-lb-application 為實例啟用已重新部署的應用程式。如需有關此指令的更多資訊,請參閱 enable-http-lb-application(1)

  5. 從負載平衡器靜止叢集中的某個伺服器實例。

    請依照下列步驟執行:

    1. 使用 asadmin disable-http-lb-server 停用伺服器實例。如需有關此指令的更多資訊,請參閱 disable-http-lb-server(1)

    2. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

    3. 將已匯出的配置檔案複製到 Web 伺服器實例的配置目錄。

      例如,對於 Sun Java System Web Server,位置為 web-server-install-dir/https-host-name /config/loadbalancer.xml。若要確保負載平衡器載入新的配置檔案,請務必確定已透過在負載平衡器配置中設定 reloadinterval 啟用了動態重新配置。

    4. 請等待,直至逾時值到期。

      監視負載平衡器的記錄檔以確定實例已離線。如果使用者看到重試 URL,請略過靜止期間,並立即重新啟動伺服器。

  6. 在叢集中的其他實例仍處於執行狀態的情況下,重新啟動已停用的伺服器實例。

    重新啟動操作將使伺服器與網域同步,並更新應用程式。

  7. 測試重新啟動的伺服器上的應用程式,以確定應用程式執行正常。

  8. 在負載平衡器中重新啟用伺服器實例。

    請依照下列步驟執行:

    1. 使用 asadmin enable-http-lb-server 啟用伺服器實例。如需有關此指令的更多資訊,請參閱 enable-http-lb-server(1)

    2. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

    3. 將配置檔案複製到 Web 伺服器的配置目錄。

  9. 對叢集中的每個實例重複步驟 5 至 8。

  10. 當所有伺服器實例具有新的應用程式並且這些伺服器實例正在執行時,您可以再次為叢集啟用動態重新配置。

在多個叢集中升級

Procedure若要在兩個或更多叢集中升級相容的應用程式,請執行以下步驟︰

  1. 儲存舊版本的應用程式或備份網域。

    若要備份網域,請使用 asadmin backup-domain 指令。如需有關此指令的更多資訊,請參閱 backup-domain(1)

  2. 關閉所有叢集的動態重新配置 (如果已啟用)。

    從管理主控台執行此動作:

    1. 展開配置節點。

    2. 按一下一個叢集配置的名稱。

    3. 在 [配置系統特性] 頁面中,取消核取 [已啟用動態重新配置] 方塊。

    4. 按一下 [儲存]

    5. 對其他叢集重複此程序

    或者,使用以下指令︰

    asadmin set --user user --passwordfile password-file cluster-name -config.dynamic-reconfiguration-enabled=false

  3. 將已升級的應用程式重新部署到目標 domain 中。

    如果使用管理主控台進行重新部署,網域將自動成為目標。如果使用 asadmin,請指定目標 domain。由於已停用動態重新配置,因此舊應用程式將繼續在叢集上執行。

  4. 使用 asadmin enable-http-lb-application 為叢集啟用已重新部署的應用程式。如需有關此指令的更多資訊,請參閱 enable-http-lb-application(1)

  5. 靜止負載平衡器中的某個叢集

    1. 使用 asadmin disable-http-lb-server 停用叢集。如需有關此指令的更多資訊,請參閱 disable-http-lb-server(1)

    2. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

    3. 將已匯出的配置檔案複製到 Web 伺服器實例的配置目錄。

      例如,對於 Sun Java System Web Server,位置為 web-server-install-dir/https-host-name /config/loadbalancer.xml。必須為負載平衡器啟用動態重新配置 (透過在負載平衡器配置中設定 reloadinterval),以便能夠自動載入新的負載平衡器配置檔案。

    4. 請等待,直至逾時值到期。

      監視負載平衡器的記錄檔以確定實例已離線。如果使用者看到重試 URL,請略過靜止期間,並立即重新啟動伺服器。

  6. 在其他叢集仍處於執行狀態的情況下,重新啟動已停用的叢集。

    重新啟動操作將使叢集與網域同步,並更新應用程式。

  7. 測試重新啟動的叢集上的應用程式,以確定應用程式執行正常。

  8. 在負載平衡器中啟用叢集︰

    1. 使用 asadmin enable-http-lb-server 啟用叢集。如需有關此指令的更多資訊,請參閱 enable-http-lb-server(1)

    2. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

    3. 將配置檔案複製到 Web 伺服器的配置目錄。

  9. 對其他叢集重複步驟 5 至 8。

  10. 當所有伺服器實例都具有新的應用程式並且這些伺服器實例正在執行時,您可以為所有叢集再次啟用動態重新配置。

升級不相容的應用程式

如果新版應用程式與舊版不相容,請使用下列程序。有關應用程式相容要素的相關資訊,請參閱應用程式相容性。此外,您必須在兩個或更多叢集中升級不相容的應用程式。如果您僅有一個叢集,請為升級建立「隱式叢集」,如下所述。

升級不相容的應用程式時,請︰

Procedure透過建立第二個叢集來升級不相容的應用程式

  1. 儲存舊版本的應用程式或備份網域。

    若要備份網域,請使用 asadmin backup-domain 指令。如需有關此指令的更多資訊,請參閱 backup-domain(1)

  2. 在相同或不同的一組機器上建立「隱式叢集」,將其做為現有叢集。如果您已經有第二個叢集,請跳過這個步驟。

    1. 使用管理主控台建立新叢集並參照現有叢集的已命名配置。

      在每個機器上為新實例自訂連接埠,以避免與現有使用中連接埠衝突。

    2. 對於與叢集相關聯的所有資源,使用 asadmin create-resource-ref 將資源參照增加至新建的叢集中。如需有關此指令的更多資訊,請參閱 create-resource-ref(1)

    3. 使用 asadmin create-application-ref,從新建的叢集中,建立對部署至該叢集的所有其他應用程式 (目前重新部署的應用程式除外) 的參照。如需有關此指令的更多資訊,請參閱 create-application-ref(1)

    4. 使用 asadmin configure-ha-cluster 將叢集配置為具有高可用性。如需有關此指令的更多資訊,請參閱 configure-ha-cluster(1)

    5. 使用 asadmin create-http-lb-ref 在負載平衡器配置檔案中建立對新建叢集的參照。如需有關此指令的更多資訊,請參閱 create-http-lb-ref(1)

  3. 為應用程式的新版本指定與舊版本不同的名稱。

  4. 透過將新叢集做為目標來部署新應用程式。使用不同的一個或多個環境根目錄。

  5. 使用 asadmin enable-http-lb-application 為叢集啟用已部署的新應用程式。如需有關此指令的更多資訊,請參閱 enable-http-lb-application(1)

  6. 在其他叢集仍處於執行狀態的情況下,啟動新的叢集。

    啟動操作將導致叢集與網域同步,並使用新應用程式進行更新。

  7. 測試新叢集上的應用程式,以確定其是否正常執行。

  8. 使用 asadmin disable-http-lb-server 從負載平衡器停用舊叢集。如需有關此指令的更多資訊,請參閱 disable-http-lb-server(1)

  9. 為延遲階段作業存在的時間設定逾時。

  10. 使用 asadmin enable-http-lb-server 從負載平衡器啟用新叢集。如需有關此指令的更多資訊,請參閱 enable-http-lb-server(1)

  11. 使用 asadmin export-http-lb-config 匯出負載平衡器配置檔案。如需有關此指令的更多資訊,請參閱 export-http-lb-config(1)

  12. 將已匯出的配置檔案複製到 Web 伺服器實例的配置目錄。

    例如,對於 Sun Java System Web Server,位置為 web-server-install-dir /https-host-name /config/loadbalancer.xml。必須為負載平衡器啟用動態重新配置 (透過在負載平衡器配置中設定 reloadinterval),以便能夠自動載入新的負載平衡器配置檔案。

  13. 在逾時時間過期後,或舊應用程式的所有使用者結束後,停止舊叢集並刪除舊應用程式。

監視 HTTP 負載平衡器外掛程式

配置記錄訊息

負載平衡器外掛程式使用 Web 伺服器的記錄機制寫入記錄訊息。Application Server 的預設記錄層級已設定為 Sun Java System Web Server (INFO)、Apache Web Server (WARN) 和 Microsoft IIS (INFO) 的預設記錄層級。Application Server 記錄層級 (FINEFINERFINEST) 對映到 Web 伺服器上的 DEBUG 層級。

這些記錄訊息將寫入 Web 伺服器記錄檔,並且以可使用程序檔進行剖析或匯入試算表以計算所需公制的原始資料形式進行。

記錄訊息類型

負載平衡器外掛程式會產生以下類型的記錄訊息:

負載平衡器配置器記錄訊息

使用等冪 URL 和錯誤頁面設定時,將記錄這些訊息。

等冪 URL 式樣配置的輸出包含以下資訊:

請求派送和執行階段記錄訊息

這些記錄訊息在負載平衡和派送請求時產生。

配置器錯誤訊息

如果存在配置問題 (例如,缺少參照的自訂錯誤頁面),將顯示這些錯誤。

啟用負載平衡器記錄

負載平衡器外掛程式記錄以下資訊:


備註 –

啟用負載平衡器記錄後,如果將 Web 伺服器記錄層級設定為 DEBUG 或顯示詳細訊息,負載平衡器會將 HTTP 階段作業 ID 寫入 Web 伺服器記錄檔中。因此,如果主控負載平衡器外掛程式的 Web 伺服器位於 DMZ 中,請勿在生產環境中使用 DEBUG 或類似的記錄層級。

如果必須使用 DEBUG 記錄層級,請在 loadbalancer.xml 中將 require-monitor-data 特性設定為 false,以關閉負載平衡器記錄。


Procedure開啟負載平衡器記錄

  1. 設定 Web 伺服器中的記錄選項。該程序取決於 Web 伺服器:

    • 對於 Sun Java System Web Server

      在伺服器的 Admin console 中,請至 [Magnus Editor] 標籤,然後將 [Log Verbose] 選項設定為 [On]。

    • 對於 Apache Web Server,請將記錄層級設定為 DEBUG

    • 對於 Microsoft IIS,請在 sun-passthrough.properties 檔案中,將記錄層級設定為 FINE

  2. 將負載平衡器配置的 monitor 選項設定為 true。

    使用 asadmin create-http-lb-config 指令可以在最初建立負載平衡器配置時將監視設定為 true,也可以稍後使用 asadmin set 指令將其設定為 true。依預設,停用監視。

瞭解監視訊息

負載平衡器外掛程式記錄訊息的格式如下所示: