如果 HTTP/HTTPS 会话所连接的原始应用程序服务器实例变为不可用,负载平衡器插件会将这些会话故障转移到其他应用程序服务器实例上。本节介绍了如何配置负载平衡器插件以启用 HTTP/HTTPS 路由选择和会话故障转移。
负载平衡器插件将收到的所有 HTTP 或 HTTPS 请求路由到应用服务器实例。但是,如果启用了 HTTPS 路由选择,则负载平衡器插件将仅把 HTTPS 请求转发给使用 HTTPS 端口的应用程序服务器。HTTPS 路由选择是针对新请求和粘性请求而执行的。
如果收到了 HTTPS 请求且没有正在进行的会话,负载平衡器插件将选择使用已配置的 HTTPS 端口的可用应用程序服务器实例,并将请求转发到该实例。
在正在进行的 HTTP 会话中,如果收到对同一个会话的新 HTTPS 请求,则将使用在 HTTP 会话期间保存的会话和粘性信息来路由 HTTPS 请求。新的 HTTPS 请求将被路由到处理上一个 HTTP 请求的同一服务器上,但是,是在 HTTPS 端口上进行。
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 设置了何值,此限制都适用。