1. 概述
负载均衡是集群方案中不可缺少,且独立于工程的一部分。对于常用的负载均衡 Nginx 和 Treafik ,我们已经提供了详细的部署和配置文档。
部分公司因特殊情况需要选择其他负载均衡时,如果想要实现集群的效果,有一些必不可少配置的项,本文档中将进行说明。
注:配置负载均衡转发的 IP 时尽量使用内网 IP。
1. 健康检查地址
这里提供健康检查的地址,返回值不需要额外配置。
健康检查地址:/webroot/decision/system/health
若系统工程名称不是webroot,请自行调整健康检查地址,例如/WebReport/decision/system/health
2. SSL加密(非必须)
要求 https 的负载均衡(不限于 Nginx),配置须符合如下几项要求:
443 监听,而且转发到后端只能是从 443 进来的请求。
Tomcat 或者其他服务器容器不做任何 SSL 配置。
负载均衡监听 http 的 80 端口并重定向到 https443 端口;
WebSocket 只需要做 38889/48889(FineReport 工程为 38889,FineBI 工程为 48889)的 SSL 监听。
负载均衡转发到 Tomcat 前要设置请求头的 X-Forwarded-Proto 值为 https。
3. WebSocket连接建立和协议升级
需要 WebSocket 的握手请求都在同一台机器上请求,所以 WebSocket 的请求上需要保持客户端和节点服务器粘滞,解决方案:
负载均衡 | 粘滞方法 |
---|---|
Nginx | WebSocket 的 upstream 设置 ip_hash(通用配置里已设置) |
AWS ELB | 开启目标组的粘性 |
F5 | 1)选择 Local Traffic → Profiles → Persistence 2)选择 Virtual Server 在 Resources中的Default Persistence Profile 可配置具体的会话持久方式 |
4. 注意事项
若用户使用 F5 作为负载均衡配置 Web 集群,则需要确认使用版本是否有安全漏洞,详情请参见:F5 BIG-IP 安全漏洞通报