如何在负载均衡器(LB)上部署设置WSO2 APIM 3.2
WSO2 APIM 3.2 负载均衡(LB)部署配置指南(适配MySQL 8.0.18环境)
前置准备
- 已完成所有WSO2 APIM 3.2节点的基础部署,且所有节点均已对接统一的MySQL 8.0.18数据库(注册表、用户管理、APIM元数据等库均已完成配置,无跨节点数据冲突)
- LB层已完成基础配置,支持4层/7层代理,开放所需端口(默认9443、8243、8280、9763等常用端口)
- 所有APIM节点与LB、MySQL之间网络互通,无端口访问限制
核心配置步骤
1. WSO2 APIM节点统一配置修改
所有APIM节点都需要修改<APIM_HOME>/repository/conf/deployment.toml配置文件:
- 配置节点通用服务域名,替换为LB的对外域名:
[server] hostname = "你的LB对外域名" node_ip = "当前APIM节点的内网IP" base_path = "https://${server.hostname}/services"
- 配置反向代理相关参数,告知APIM当前走LB代理:
[transport.https.properties] proxyPort = 443 [transport.http.properties] proxyPort = 80
- 配置端点发布的默认域名,确保API发布后调用地址指向LB:
[apim.gateway] gateway_env_type = "Production and Sandbox" [apim.gateway.environment.production] service_url = "https://${server.hostname}/services/" ws_endpoint = "wss://${server.hostname}/ws" web_socket_endpoint = "wss://${server.hostname}/ws" [apim.gateway.environment.sandbox] service_url = "https://${server.hostname}/services/" ws_endpoint = "wss://${server.hostname}/ws" web_socket_endpoint = "wss://${server.hostname}/ws"
2. 负载均衡侧配置
以7层LB为例,核心配置要求如下:
- 会话保持配置:需开启基于Cookie的会话粘性,会话超时时间建议设置为30分钟以上,适配APIM的控制台操作会话要求
- 端口转发规则配置:
- 80端口转发至APIM节点的9763端口
- 443端口转发至APIM节点的9443端口
- 8280端口转发至APIM节点的8280端口(HTTP API调用)
- 8243端口转发至APIM节点的8243端口(HTTPS API调用)
- 9099端口转发至APIM节点的9099端口(WebSocket调用)
- 健康检查配置:配置对APIM节点9443端口的
/services/Version接口做健康探测,探测间隔10秒,连续3次失败则剔除节点
3. 验证配置有效性
- 依次重启所有APIM节点,确认无启动报错
- 访问LB域名的APIM控制台
https://你的LB域名/carbon,验证可正常登录,操作无异常 - 发布一个测试API,调用LB对外暴露的API地址,验证返回结果正常
- 手动下线单个APIM节点,验证请求可自动转发至其他存活节点,服务无中断
注意事项
- MySQL 8.0.18需提前配置好最大连接数,建议设置为1000以上,避免多节点并发访问数据库出现连接不足问题
- 所有APIM节点的keystore建议使用统一的证书,避免LB代理时出现证书校验失败问题
- 生产环境建议LB配置HTTPS证书卸载,减少APIM节点的SSL计算开销
内容的提问来源于stack exchange,提问作者Ram Kishan Maitry
相关产品推荐
相关产品推荐

