centos里weblogic如何进行负载均衡
导读:在 CentOS 上为 WebLogic 实现负载均衡 架构与准备 组件与拓扑:准备至少 2 台 CentOS 7/8/9 服务器部署 WebLogic 12c/14c,建议至少 1 台管理服务器 + 2 台受管服务器 组成集群;另准备...
在 CentOS 上为 WebLogic 实现负载均衡
架构与准备
- 组件与拓扑:准备至少 2 台 CentOS 7/8/9 服务器部署 WebLogic 12c/14c,建议至少 1 台管理服务器 + 2 台受管服务器 组成集群;另准备 1 台负载均衡器(Nginx/HAProxy 或硬件 F5/SLB)对外暴露 80/443。
- 基础环境:安装 JDK 8(WebLogic 14 常用),创建 weblogic 用户与目录,配置 /etc/profile 的 JAVA_HOME/PATH 并
source /etc/profile生效。 - 网络与防火墙:开放管理端口(如 7001)、受管服务器端口(如 7002/7003)、负载均衡器端口(80/443),并放通回环与集群节点间通信。
- 域名与证书:准备对外域名(如 app.example.com),TLS 证书用于 443 端口(可选)。
方式一 外部软件负载均衡 Nginx 或 HAProxy
- 安装与启用
- Nginx:
sudo yum install -y epel-release & & sudo yum install -y nginx & & sudo systemctl enable --now nginx - HAProxy:
sudo yum install -y haproxy & & sudo systemctl enable --now haproxy
- Nginx:
- Nginx 示例(HTTP,轮询)
- 配置
/etc/nginx/nginx.conf或/etc/nginx/conf.d/weblogic.conf:http { upstream weblogic_servers { server 10.0.0.11:7002; server 10.0.0.12:7003; # 可按需增加权重:server 10.0.0.13:7004 weight=2; } server { listen 80; server_name app.example.com; location / { proxy_pass http://weblogic_servers; 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 nginx -t & & sudo systemctl reload nginx
- 配置
- HAProxy 示例(HTTP,轮询 + 健康检查)
- 配置
/etc/haproxy/haproxy.cfg:global log /dev/log local0 log /dev/log local1 notice maxconn 4096 defaults log global mode http option httplog option dontlognull retries 3 timeout http-request 10s 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:7002 check server s2 10.0.0.12:7003 check - 校验并重载:
sudo haproxy -c -f /etc/haproxy/haproxy.cfg & & sudo systemctl reload haproxy
- 配置
- 说明:Nginx/HAProxy 负责连接转发与会话保持(如基于 cookie/源地址),健康检查自动摘除异常节点。
方式二 WebLogic 集群与会话保持
- 创建集群与受管服务器
- 使用 WLST 或管理控制台创建域、集群与受管服务器,示例(WLST 片段):
readTemplateForUpdate('/opt/weblogic/oracle/middleware/wlserver/common/templates/wls/wls.jar') cd('Servers/AdminServer') set('ListenAddress','') set('ListenPort', 7001) cd('/') cd('Security/base_domain/User/weblogic') cmo.setPassword('YourStrongPwd!') set('OverwriteDomain', 'true') writeDomain('/opt/weblogic/oracle/middleware/user_projects/domains/base_domain') closeTemplate() exit() - 在管理控制台将受管服务器加入同一 Cluster,分别配置各自的 ListenAddress/ListenPort(如 7002/7003)。
- 使用 WLST 或管理控制台创建域、集群与受管服务器,示例(WLST 片段):
- 会话保持
- 应用启用 WebLogic Server Affinity(会话亲和):在应用的 weblogic.xml 中设置
< session-descriptor> < persistent-store-type> replicated< /persistent-store-type> < /session-descriptor>或< session-descriptor> < url-rewriting-enabled> true< /url-rewriting-enabled> < /session-descriptor>,确保同一会话优先落到同一受管服务器。 - 若使用外部负载均衡器,可开启 源地址哈希 或 基于 cookie 的会话保持 作为补充。
- 应用启用 WebLogic Server Affinity(会话亲和):在应用的 weblogic.xml 中设置
- 启动顺序:先启动 AdminServer(7001),再启动各 Managed Server(7002/7003),在控制台确认集群成员 Health=OK。
验证与常见问题
- 健康检查与分发验证
- 访问 http://app.example.com 多次,观察返回内容或后端日志,确认请求在 7002/7003 之间轮询分发。
- 停止某台受管服务器,验证 Nginx/HAProxy 是否自动摘除并在恢复后重新加入。
- 会话保持验证
- 登录应用后获取 JSESSIONID,刷新或新开浏览器标签重复访问,确认会话不丢失(同一实例处理)。
- 常见问题
- 应用上下文路径错误:确认负载均衡器转发到受管服务器的正确 Context Root。
- 静态资源 404:若静态资源由 WebLogic 托管,保持路径一致;若由 Nginx 托管,配置静态资源 location 直接服务。
- 防火墙/SELinux:确保放行 7001/7002/7003/80/443 与回环通信。
- 日志排查:
/var/log/nginx/access.log、/var/log/haproxy.log、$DOMAIN_HOME/servers/< server> /logs/*.log。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos里weblogic如何进行负载均衡
本文地址: https://pptw.com/jishu/770662.html
