温馨提示×

如何在Linux上实现WebLogic负载均衡

小樊
55
2025-11-14 20:32:18
栏目: 云计算

Linux上实现WebLogic负载均衡

一、架构与准备

  • 架构选型
    • 前端反向代理/负载均衡:使用 NginxHAProxy 对外暴露 80/443,将请求转发到后端 WebLogic 受管服务器7001/7002 等监听端口。
    • 后端集群:在 WebLogic 中创建 集群,添加多个 受管服务器,对外提供统一服务。
  • 环境与网络
    • 操作系统建议 CentOS 7/8/9,安装 JDK 8/11(与所用 WebLogic 版本匹配)。
    • 各节点与负载均衡器之间开放必要端口(如 7001/7002/T3 管理通道、SSH 等),并启用 时间同步(NTP)
    • 防火墙/安全组放行:负载均衡器到 WebLogic 的 7001/7002,以及集群节点间的 T3 通信端口。

二、配置WebLogic集群

  • 安装与域创建
    • 在所有节点安装相同版本的 WebLogic Server,使用 config.sh 创建域(或使用模板),确保 JAVA_HOME 等环境变量一致。
  • 创建集群与受管服务器
    • 管理控制台路径:环境 → 集群 → 新建,创建集群(如 MyCluster)。
    • 在集群下添加受管服务器(如 Server1:7001Server2:7002),分布在不同主机。
  • 部署与路由
    • 将应用部署到 集群(而非单个服务器),以便由前端或 WebLogic 的集群机制进行分发。
  • 会话保持与容错
    • 有状态应用建议开启 会话复制(In-Memory Replication) 或配置 JDBC 会话持久化,避免用户刷新或故障切换时丢失会话。

三、部署Nginx或HAProxy

  • 方案A:Nginx 作为反向代理/负载均衡
    • 安装:sudo yum install -y epel-release && sudo yum install -y nginx
    • 配置示例(/etc/nginx/nginx.conf 或 /etc/nginx/conf.d/weblogic.conf):
      http {
        upstream weblogic_cluster {
          server 10.0.0.11:7001;
          server 10.0.0.12:7001;
          # 可按需增加权重、备份等
        }
        server {
          listen 80;
          server_name app.example.com;
          location / {
            proxy_pass http://weblogic_cluster;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
          }
        }
      }
      
    • 启用:sudo systemctl enable --now nginx
  • 方案B:HAProxy 作为反向代理/负载均衡
    • 安装:sudo yum install -y haproxy
    • 配置示例(/etc/haproxy/haproxy.cfg):
      global
        log /dev/log local0
        log /dev/log local1 notice
        maxconn 4096
        tune.ssl.default-dh-param 2048
      defaults
        log global
        mode http
        option httplog
        option dontlognull
        retries 3
        timeout http-request 10s
        timeout queue 1m
        timeout connect 10s
        timeout client 1m
        timeout server 1m
      frontend http-in
        bind *:80
        default_backend weblogic_servers
      backend weblogic_servers
        balance roundrobin
        server s1 10.0.0.11:7001 check
        server s2 10.0.0.12:7001 check
      
    • 启用:sudo systemctl enable --now haproxy
  • 说明
    • 若使用 HTTPS,在 Nginx/HAProxy 上终止 TLS,后端仍用 HTTP 7001;或启用 SSL Passthrough 将 443 直通到 WebLogic(需相应证书与监听配置)。

四、验证与优化

  • 健康检查与连通性
    • 在负载均衡器上执行 curl 或浏览器访问 http://app.example.com/,观察是否按预期在多台受管服务器间分发。
    • 查看 Nginx/HAProxy 日志与状态页,确认后端 UP 且健康检查通过。
  • 会话保持验证
    • 登录应用后刷新或关闭一台受管服务器,确认会话不丢失(会话复制生效)。
  • 性能与安全
    • 调整 worker_connections(Nginx)、maxconn(HAProxy)、超时与重试参数;开启 access_log 与必要的 监控告警
    • 对外仅暴露 80/443,管理端口(如 7001/7002/T3)限制为内网访问;启用 防火墙/安全组 最小权限。

0