我可以使用 IP 地址登录 Liferay,但无法使用门户登录 URL

I can sign in to Liferay using IP address but cannot login using the portal URL

我有两个 Liferay 6.2 实例,HAProxy 在它们前面用于负载平衡目的。 HAproxy 存在于另一台服务器上并有自己的 IP 地址。门户 URL 指向 HAproxy 负载均衡器。我可以使用任何 Liferay 服务器的 IP 地址登录。当我想使用 URL 登录时,我已成功重定向到 Liferay 的登录页面,但在输入 user/pass 并单击登录按钮后,登录页面再次出现,没有任何错误消息,也没有在 UI 或 Tomcat 日志上。根据 Tomcat 日志,后台登录过程运行良好,但不会重定向到门户的任何正确页面。此外,如果我输入错误的凭据,则不会显示任何错误消息,并且会再次出现“登录”页面。

HAproxy 使用不同的算法进行负载均衡。我们的初始设置使用 'roundrobin'。该算法的工作原理是根据权重轮流使用负载均衡器后面的每个服务器。单击 here 了解更多详细信息。关于此算法,在一个 Liferay 实例上成功登录的每个 HTTP 响应都重定向到另一个 Liferay 实例,而它不知道登录请求。通过将 'roundrobin' 更改为 'source' 问题得到解决,因为该算法平衡了与接收到的 HTTP 请求的 IP 地址相关的负载。它将每个服务器专用于某些客户端。换句话说,该算法可以防止客户端从不同服务器获得响应的情况,因此不会错过 HTTP 会话。