我们最近部署了一个与 AM 集群配合使用的 IS-KM 集群。我们在 AWS 实例上分配它,并按照 WSO2 官方网站上提供的文档安装和配置它。
我们现在遇到的问题与 cookie session 和 IS carbon 控制台有关。我们使用 ALB 将 IS-KM 节点暴露给互联网。我们在 Target Group 上启用了粘性会话属性,因为它是在 HA 上配置 WSO2 IS-KM 期间必须的。如果目标组上的两个实例都处于活动状态(ALB 应该平衡它们之间的流量),我们无法登录到 carbon 控制台,我们总是被重定向到登录。
我们在此问题期间检查了 IS-KM wso2carbon.log:
TID: [-1234] [] [2020-04-23 08:58:14,215] [9bab1156-3c57-4fdc-876e-c0edf46d4ed5] INFO {org.wso2.carbon.core.services.util.CarbonAuthenticationUtil} - 'admin@carbon.super [-1234]' logged in at [2020-04-23 08:58:14,215-0300]
在我们进行的每次登录重试时,此日志会出现在每个节点上。我们还注意到,两台服务器在登录期间都在接收请求,如下所示:
节点 1 日志:
ALB IP - - [23/Apr/2020:09:03:07 -0300] GET /carbon/admin/index.jsp?loginStatus=true&loginStatus=true&loginStatus=true&loginStatus=true&loginStatus=true&loginStatus=true&loginStatus=true HTTP/1.1 302 - https://domain-name/carbon/admin/login.jsp Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0 0.001
ALB IP - - [23/Apr/2020:09:03:08 -0300] GET /carbon/admin/js/csrfPrevention.js HTTP/1.1 200 4382 https://domain-name/carbon/admin/login.jsp Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0 0.002
节点 2 日志:
ALB IP - - [23/Apr/2020:09:03:07 -0300] POST /carbon/admin/login_action.jsp HTTP/1.1 302 - https://domain-name/carbon/admin/login.jsp Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0 0.062
ALB IP - - [23/Apr/2020:09:03:07 -0300] GET /carbon/admin/login.jsp HTTP/1.1 200 3431 https://domain-name/carbon/admin/login.jsp Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0 0.003
ALB IP - - [23/Apr/2020:09:03:08 -0300] POST /carbon/admin/js/csrfPrevention.js HTTP/1.1 200 52 https://domain-name/carbon/admin/login.jsp Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0 0.001
如日志所示,在登录期间请求被发送到不同的节点。如果我们只在目标组上放置一个节点,一切都会变得很棒。
所以问题是,为什么启用的粘性会话不能正常工作?可能是导致该行为的 IS-KM 配置上的一些问题?