在CentOS上实现负载均衡前,需先安装WebLogic Server(建议版本12c及以上)。可从Oracle官网下载安装包,通过解压、创建weblogic用户/组、配置环境变量(如WL_HOME、PATH)完成基础安装。安装完成后,启动管理服务器(AdminServer)并完成域配置。
集群是负载均衡的核心载体,需通过管理控制台完成配置:
http://admin-server-ip:7001/console,使用管理员账号登录。my_cluster),选择集群模式(通常为“受管服务器集群”),点击“完成”。managed1、managed2),选择“受管服务器”,设置监听端口(如8001、8002),点击“完成”。WebLogic支持多种内置负载均衡算法,可根据需求选择:
Nginx轻量高效,适合作为前端负载均衡器:
sudo yum install epel-release -y
sudo yum install nginx -y
/etc/nginx/nginx.conf,在http块中添加以下内容:upstream weblogic_cluster {
server managed1_ip:8001; # 受管服务器1地址:端口
server managed2_ip:8002; # 受管服务器2地址:端口
}
server {
listen 80;
server_name your_domain.com; # 替换为实际域名/IP
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;
}
}
sudo systemctl start nginx
sudo systemctl enable nginx
若不想引入第三方工具,可使用WebLogic自带的代理组件:
HttpClusterServlet),在WEB-INF/web.xml中添加集群配置:<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>
<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>managed1_ip:8001,managed2_ip:8002</param-value> # 集群服务器地址
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/*</url-pattern> # 所有请求通过代理
</servlet-mapping>
HttpClusterServlet.war),部署到管理服务器或专用负载均衡服务器。为避免单点故障导致会话丢失,需配置会话复制:
WEB-INF/weblogic.xml中添加会话复制配置:<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app">
<wls:session-descriptor>
<wls:persistent-store-type>replicated_if_clustered</wls:persistent-store-type> # 集群环境下使用复制
<wls:timeout-secs>30</wls:timeout-secs> # 会话超时时间
</wls:session-descriptor>
</wls:weblogic-web-app>
http://your_domain.com),多次刷新页面,观察请求是否分发到不同受管服务器(可通过服务器日志或应用中的节点标识确认)。upstream参数(如fail_timeout=5s max_fails=2),自动剔除故障服务器。