在 CentOS 上为 WebLogic 实现负载均衡
架构与准备
source /etc/profile 生效。方式一 外部软件负载均衡 Nginx 或 HAProxy
sudo yum install -y epel-release && sudo yum install -y nginx && sudo systemctl enable --now nginxsudo yum install -y haproxy && sudo systemctl enable --now haproxy/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/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方式二 WebLogic 集群与会话保持
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()
<session-descriptor><persistent-store-type>replicated</persistent-store-type></session-descriptor> 或 <session-descriptor><url-rewriting-enabled>true</url-rewriting-enabled></session-descriptor>,确保同一会话优先落到同一受管服务器。验证与常见问题
/var/log/nginx/access.log、/var/log/haproxy.log、$DOMAIN_HOME/servers/<server>/logs/*.log。