如果 HTTP/HTTPS 階段作業所連線的原始應用程式伺服器實例變為不可用,負載平衡器外掛程式會將這些階段作業防故障備用到其他應用程式伺服器實例上。本小節介紹如何配置負載平衡器外掛程式以啟用 HTTP/HTTPS 路由和階段作業容錯移轉。
負載平衡外掛程式將所有內送的 HTTP 或 HTTPS 請求路由至應用程式伺服器實例。然而,如果啟用了 HTTPS 路由,則負載平衡外掛程式會將 HTTPS 請求僅轉寄給使用 HTTPS 連接埠的應用程式伺服器。HTTPS 路由是針對新請求和居留式請求而執行的。
如果收到了 HTTPS 請求且沒有正在進行的階段作業,負載平衡器外掛程式將選取使用已配置的 HTTPS 連接埠的可用應用程式伺服器實例,並將請求轉寄到該實例。
在正在進行的 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 請求的組合,則必須將應用程式伺服器實例配置為同時具有 HTTP 和 HTTPS 偵聽程式。僅當將 httpsrouting 設定為 true 時,此限制才有效。
如果某個階段作業具有 HTTP 和 HTTPS 請求的組合,則必須將應用程式伺服器實例配置為具有使用標準連接埠號 (即,對於 HTTP 為 80,對於 HTTPS 為 443) 的 HTTP 和 HTTPS 偵聽程式。無論將 httpsrouting 設定為何值,此限制均適用。