WSO2 API Manager双活HA集群回调URL应如何正确配置?
WSO2 APIM 双节点HA集群回调异常解决方案
回调URL填写规则
所有场景下的回调URL统一填写负载均衡的完整对外访问地址+对应服务上下文路径,禁止填写集群内单个节点的IP/本地域名,避免回调流量路由到单点、或跨节点鉴权失败。
示例:若LB对外域名为wso2apim.example.com,HTTPS对外端口为443,所有回调的前缀统一为https://wso2apim.example.com,无需携带节点本地端口(如9443)。
具体修复步骤
两个节点均需修改<APIM_HOME>/repository/conf/deployment.toml配置,修改完成后重启服务即可:
- 配置通用LB代理参数
[server] hostname = "wso2apim.example.com" # 替换为实际LB对外域名 node_ip = "192.168.1.10" # 单个节点填写自身的本地IP即可 base_path = "https://${server.hostname}/" [transport.https.properties] proxyPort = 443 # 替换为LB对外HTTPS端口,HTTP场景修改对应transport.http配置块
- 配置身份服务回调规则
[oauth] # 回调白名单同时加入LB地址和两个节点本地地址,避免内部服务调用被拦截 allowed_callbacks = [ "regexp=(https://wso2apim.example.com/(.*))|(https://node1.apim.local:9443/(.*))|(https://node2.apim.local:9443/(.*))" ] [oauth.endpoints] oauth2_callback_url = "https://wso2apim.example.com/commonauth"
- 配置各门户的回调地址
# 管理控制台回调 [apim.admin] callback_url = "https://wso2apim.example.com/admin/services/callback" # 发布者门户回调 [apim.publisher] callback_url = "https://wso2apim.example.com/publisher/services/callback" # 开发者门户回调 [apim.devportal] callback_url = "https://wso2apim.example.com/devportal/services/callback"
残余报错排查
如果配置完成后仍有回调报错,优先检查两项配置:
- 若使用3.x以下旧版本APIM,需在LB侧开启基于Cookie的会话保持,避免回调请求被路由到未生成授权会话的节点
- 检查两个节点的系统时间是否同步,时差超过5分钟会导致JWT令牌校验失败,触发回调鉴权错误
内容的提问来源于stack exchange,提问作者Museb Momin
相关产品推荐
相关产品推荐

