首先確定環境已裝apache2.4,沒裝的話可以看下這篇文章apache2.4一鍵腳本安裝(linux環境)
1.下載apache分發模塊mod_wl_24.so
下載apache2.4的weblogic分發模塊 mod_wl_24.so
鏈接:https://pan.baidu.com/s/1c2zxrAK (linux 64位版本,csdn都是要c幣的,我也是花錢買的~~o(>_<)o ~~,都不容易,真的需要的話留郵箱我免費發你提取碼)
將下載好的mod_wl_24.so上傳至apache的安裝目錄 /usr/local/apache2/modules
2.apache中的weblogic集群配置
進入apache的配置文件(安裝的時候我這里指定了配置文件的存放目錄 sysconfdir=/etc/httpd24,后續補充我一鍵安裝apache的腳本)
# vi /etc/httpd24/httpd.conf
去掉下面5行語句之前的#號:
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule rewrite_module modules/mod_rewrite.so
在文件最后加上
LoadModule weblogic_module modules/mod_wl_24.so
<IfModule mod_weblogic.c>
WebLogicCluster 192.168.43.128:7201,192.168.43.128:7202,192.168.43.128:7203,192.168.43.129:7201,192.168.43.129:7202,192.168.43.129:7203
MatchExpression *
DynamicServerList OFF
KeepAliveEnabled ON
KeepAliveSecs 30
</IfModule>
DynamicServerList設置為OFF,在對由插件所代理的請求進行負載平衡時,不使用動態集群列表,而是使用WebLogicCluster參數指定的靜態列表。
DynamicServerList 、KeepAliveEnabled、KeepAliveSecs 的設置是為了解決: No backend server available for connection: timed out after 10 seconds or idempotent set to OFF錯誤。
如下:
3.apache負載均衡配置
同樣還是apache的配置文件
# vi /etc/httpd24/httpd.conf
啟用以下5個模塊,也就是去掉語句之前的#號,這里可能和第2步的有些重復,總之確認啟用:
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
在httpd.conf文件最后加上以下設置,這里采用默認的平均分配算法(輪詢),設置權重比例請參考http://www.jb51.net/article/31454.htm這篇文章
ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://192.168.43.128:7201
BalancerMember http://192.168.43.128:7202
BalancerMember http://192.168.43.128:7203
BalancerMember http://192.168.43.129:7201
BalancerMember http://192.168.43.129:7202
BalancerMember http://192.168.43.129:7203
</Proxy>
ProxyPass / balancer://mycluster/
# 警告:以下這段配置僅用於調試,絕不要添加到生產環境中!!!
<Location /balancer-manager>
SetHandler balancer-manager
order Deny,Allow
Allow from all
</Location>
注:這里只需要添加BalancerMember 集群的節點就好,其他不用改動
修改完之后保存退出重啟apache服務
# cd /usr/local/apache2/bin
# ./apachectl - k restart
如果啟動有錯或者頁面加載無響應請查看錯誤日志
#vi /usr/local/apache2/logs/error.log
4.結果演示
環境:6個節點服務器分為3個集群
cluster1:server1(192.168.43.128:7201),server4(192.168.43.129:7201)
cluster2:server2(192.168.43.128:7202),server5(192.168.43.129:7202)
cluster3:server3(192.168.43.128:7203),server6(192.168.43.129:7203)
項目部署目標為3個集群,為了查看演示效果加以區別我分別改了上傳至6個節點服務器里war包的默認頁面index.jsp
結果如下,可以看到apache將請求分發到各個節點服務器是平均分配的
至此apache負載均衡weblogic集群的相關配置驗證是可以了,后續會補充weblogic集群搭建和項目部署相關的,能做到寫一套完完整整的搭建"apache負載均衡+weblogic集群"生產環境的系列,有問題可以留言共同學習哈~