如果 HTTP/HTTPS 階段作業所連線的原始 Application Server 實例變為不可用,負載平衡器外掛程式會將這些階段作業容錯移轉到其他 Application Server 實例上。本小節介紹如何配置負載平衡器外掛程式,以啟用 HTTP/HTTPS 路由和階段作業容錯移轉。
負載平衡器外掛程式將所有內送的 HTTP 或 HTTPS 請求路由至 Application Server 實例。然而,如果啟用了 HTTPS 路由,則負載平衡器外掛程式會將 HTTPS 請求僅轉寄給使用 HTTPS 連接埠的 Application Server。HTTPS 路由是針對新請求和居留式請求而執行的。
如果收到了 HTTPS 請求且沒有正在進行的階段作業,負載平衡器外掛程式將選取使用已配置的 HTTPS 連接埠的可用 Application Server 實例,並將請求轉寄到該實例。
在正在進行的 HTTP 階段作業中,如果收到對同一個階段作業的新 HTTPS 請求,則使用在 HTTP 階段作業期間儲存的階段作業和居留式資訊來路由 HTTPS 請求。新的 HTTPS 請求將路由到在此 HTTPS 連接埠上處理上一個 HTTP 請求的同一伺服器。
create-http-lb-config 指令的 httpsrouting 選項,用於控制是否為參與負載平衡的所有應用程式伺服器開啟 HTTPS 路由功能。如果此選項設定為 false,所有 HTTP 和 HTTPS 請求都將作為 HTTP 請求進行轉寄。如果設定為 true,HTTPS 將做為 HTTPS 請求進行轉寄。建立新的負載平衡器配置時,請設定 HTTPS 路由,或者以後使用 asadmin set 指令加以變更。
若要使 HTTPS 路由工作,必須配置一個或多個 HTTPS 偵聽程式。
如果 https-routing 設定為 true,而新請求或居留式請求傳入的叢集中沒有正常的 HTTPS 偵聽程式,則該請求將產生一個錯誤。
負載平衡器對 HTTP/HTTPS 請求處理具有以下限制。
如果某個階段作業使用 HTTP 和 HTTPS 請求的組合,則第一個請求必須是 HTTP 請求。如果第一個請求是 HTTPS 請求,則其後不能接 HTTP 請求。這是因為與 HTTPS 階段作業關聯的 Cookie 不是由瀏覽器傳回的。瀏覽器將兩個不同的協定解釋為兩個不同的伺服器,並啟動新的階段作業。僅當將 httpsrouting 設定為 true 時,此限制才有效。
如果某個階段作業具有 HTTP 和 HTTPS 請求的組合,則必須將 Application Server 實例配置為同時具有 HTTP 和 HTTPS 偵聽程式。僅當 httpsrouting 設定為 true 時,此限制才有效。
如果某個階段作業具有 HTTP 和 HTTPS 請求的組合,則必須將 Application Server 實例配置為具有使用標準連接埠號 (即,對於 HTTP 為 80,對於 HTTPS 為 443) 的 HTTP 和 HTTPS 偵聽程式。httpsrouting 無論設定為哪個值,皆需遵守此限制。