在CentOS上實現負載均衡前,需先安裝WebLogic Server(建議版本12c及以上)??蓮腛racle官網下載安裝包,通過解壓、創建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),自動剔除故障服務器。