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 安全漏洞通報