1)在windows下安装的apache,具体安装过程不说了.版本为2.2
2) 与weblogic做负载均衡
在httpd.conf打开
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
把139上的 /spmwls/weblogic1036/wlserver_10.3/server/plugin/win/32/mod_wl_22.so 下载到
C:\Program Files (x86)\phpStudy\Apache2\modules里,并且在conf文件里多加一句
LoadModule weblogic_module modules/mod_wl_22.so
在conf文件的最后加上:
<IfModule mod_weblogic.c>
WeblogicCluster 10.4.119.139:12501,10.4.119.142:12501
MatchExpression *.*
WLLogFile "C:/Program Files (x86)/phpStudy/Apache2/logs/wlproxy.log"
Debug On
DebugConfigInfo On
KeepAliveEnabled On
KeepAliveSecs 15
</IfModule>
ProxyRequests Off
ProxyPreserveHost On
<Proxy balancer://mycluster>
BalancerMember http://10.4.119.139:12501
BalancerMember http://10.4.119.142:12501
</Proxy>
ProxyPass / balancer://mycluster/
之后重启apache,即可通过http://localhost
访问139与142,还有些负载均衡的算法啥的,以后再补充
3) 与tomcat负载均衡
在httpd.conf里,
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
并且:
# add by xh
<IfModule mod_info.c>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
#Deny from all
Allow from localhost ip6-localhost
</Location>
</IfModule>
ProxyPass / balancer://tomcatcluster/
#lbmethod=byrequests stickysession=JSESSIONID nofailover=Off timeout=50 maxattempts=3
ProxyPassReverse / balancer://tomcatcluster/
ProxyPreserveHost On
<Proxy balancer://tomcatcluster>
BalancerMember ajp://localhost:8009 route=tomcat1
BalancerMember ajp://127.0.0.1:8010 route=tomcat2
#BalancerMember http://10.4.101.72:8088 route=tomcat1
#BalancerMember http://10.4.101.51:8081 route=tomcat2
</Proxy>
之后tomcat需要session复制,因为没有用到粘滞的会话,附件加上tomcat修改的配置文件
apache还可以用jk配置,也加上附件,apache也能用http的配置,这个是我觉得最抛开底层的
负载均衡的原理实际上就是一个跳转加上 另外一个中间件服务器自身的session复制;
或者是用apache的stick session 就不用session复制了(一个机器崩溃了之后,需要重新登录)
下面是weblogic的负载均衡的配置,简单的列出关键部分:
# weblogic plug-in for apache
LoadModule weblogic_module modules/mod_wl_22.so #这个需要把weblogic的目录下的mod_wl_22.so放入apache的目录
<IfModule mod_weblogic.c>
WebLogicCluster 10.46.137.53:8001,10.46.137.53:8002,10.46.137.53:8003,10.46.137.53:8004,10.46.137.53:8005
WLIOTimeoutSecs 3600 #响应的超时时间,默认是5分钟,改大一点,因为有的操作,比如导出啥的,超过5分钟就跳转到另外一个后端服务器了
MatchExpression /WEB-INF
MatchExpression /*WEB-INF
MatchExpression /*.do
MatchExpression /servlet/*
MatchExpression /*.jsp
MatchExpression /*.*
</IfModule>
<LocationMatch "/">
SetHandler weblogic-handler
</LocationMatch>
Timeout 1000000
KeepAlive on
KeepAliveTimeOut 1500000
另外,apache有个maxclient的属性,超过了的进程就需要排队了,所以很重要,我随意找了个帖子http://blog.csdn.net/leshjmail/article/details/7772968
关于apache的MPM模式,http://www.itokit.com/2012/0703/74568.html
啥调优的一些公式: http://www.360doc.com/content/12/1018/09/834950_242158613.shtml
合理利用 http://www.enkj.com/help/newscontent/66321