当前位置: 代码迷 >> Web前端 >> Tomcat + apache 干web 负载平衡和群集
  详细解决方案

Tomcat + apache 干web 负载平衡和群集

热度:480   发布时间:2012-10-28 09:54:44.0
Tomcat + apache 做web 负载平衡和群集

Tomcat + apache web 负载平衡和群集

操作系统:windows 我本机。以下是已经试验过的。

tomcat-6.0.26? 下载地址:http://tomcat.apache.org/download-60.cgi

httpd-2.2.15 下载地址:http://labs.renren.com/apache-mirror/httpd/binaries/win32/httpd-2.2.15-win32-x86-no_ssl.msi

?

1、Apache配置
1.1、httpd.conf配置
修改APACHE的配置文件D:\Apache \conf\httpd.conf
将以下Module的注释去掉,这里并没有使用mod_jk.so进行apache和tomcat的链接,从2.X以后apache自身已集成了 mod_jk.so的功能。只需简单的把下面几行去掉注释,就相当于以前用mod_jk.so比较繁琐的配置了。这里主要采用了代理的方法,就这么简单。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
再找到<IfModule dir_module></IfModule>加上index.jsp修改成
<IfModule dir_module>
DirectoryIndex index.html index.jsp
</IfModule>

1.2 ? httpd.conf中找到Include conf/extra/httpd-vhosts.conf 把它前面的注释去掉

1.3 Apache2.2\conf\extra 目录下找到httpd-vhosts.conf在它的内容尾添加下面内容:

ProxyRequests Off

<VirtualHost *:80>

???????? ServerAdmin webmaster@dummy-host2.a.com

???????? ServerName localhost

???????? ServerAlias localhost

???????? ProxyPass / balancer://proxy/ stickysession=JSESSIONID nofailover=Off lbmethod=bytraffic

???????? ProxyPassReverse / balancer://proxy

?? ??????<Proxy balancer://proxy>

??????????????? BalancerMember http://127.0.0.1:9080/ loadfactor=1 route=work1

??????????????? BalancerMember http://127.0.0.1:10080/ loadfactor=1 route=work2

???????? </Proxy>

</VirtualHost>

?

?

<Location /balancer-manager>

? ??SetHandler balancer-manager

??? Order Deny,Allow

??? Deny from all

??? Allow from all

</Location>

?9080 10080 两个端口是你的tomcat http访问端口 apache配置完。

?

2tomcat的配置 (一下配置都在server.xml 文件中)

2.1 改端口两个地方端口

<Connector port="#####" protocol="HTTP/1.1" ?connectionTimeout="20000" redirectPort="8443" />

<Connector port="#####" protocol="AJP/1.3" redirectPort="#####" />

多个tomcat需要把#####替换成不通的端口号

2.2? 打开两个注释

<Engine name="Catalina" defaultHost="localhost" jvmRoute="work1">把原来的 engine 那个注释掉,多个tomcat ?jvmRoute=”不同的名,且需要和apacheHTTPServer 中的route值对应

? <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 这个注释也打开

?

?

备注:

1linuxApache
   进入解压目录,在终端执输入以下命令:

  ./configure --prefix=/usr/local/httpd --enable-so --enable-proxy --enable-proxy-ajp --enable-proxy-http --enable-proxy-ftp --enable-proxy-connect --enable-proxy-balancer

然后编译安装
  参照地址:http://bbs.ctocio.com.cn/viewthread.php?tid=7810697


 

  相关解决方案