首先确定环境已装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集群"生产环境的系列,有问题可以留言共同学习哈~