Windows 2003下配置Apache代理Tomcat集群

转载 2008年09月30日 00:14:00

索引 

0、工作原理
1、软件准备
       1.1 软件条目
       1.2 安装JDK
       1.3 安装Tomcat
       1.4 安装Apache
2、配置Tomcat集群
       2.1 修改Tomcat默认应用
       2.2 添加ROOT应用
       2.3 修改server.xml
       2.4 修改web.xml
3、配置Apache HTTP代理
4、优化Tomcat配置
       4.1 屏蔽HTTP Connector
       4.2 配置虚拟主机
       4.3 配置GBK编码
5、测试程序 

0、工作原理 

     Apache(HTTP Server)2.2新增了代理服务器(Proxying)功能:新的代理均衡模块(mod_proxy_balancer)提供负载均衡服务;AJP 1.3(Apache JServ Protocol)替代jk/jk2等连接器与Tomcat通信。
    结合Tomcat的集群(Cluster)功能,服务器结构如下:

    Load Balancer(Apache 2.2 Proxy)
         /           /
      Cluster1      Cluster2
      /     /        /     /
 Tomcat1 Tomcat2 Tomcat3 Tomcat4

注:绿色部分为本文采用的配置情况。

1、 软件准备

1.1    软件条目

操作系统              WinXP/Win2003

JDK_5.0               http://java.sun.com/javase/downloads/index_jdk5.jsp (MSI Installer)
Apache_2.2.4        http://httpd.apache.org/download.cgi (MSI Installer)
Tomcat_5.5.23      http://tomcat.apache.org/download-55.cgi (Core Zip)

 

1.2    安装JDK
安装至目录 D:/Java/jdk1.5.0 下,设置JAVA_HOME/CLASSPATH/PATH,略。

1.3    安装Tomcat
解压缩Zip文件至目录 D:/Apache/Tomcat 5.5.23_S1 下;待配好后,复制到D:/Apache/Tomcat 5.5.23_S2,修改相关的端口和路径。

1.4    安装Apache
安装至目录 D:/Apache/Apache2.2 下,可在Tomcat集群配置完成后再安装。

2、 配置Tomcat集群

2.1 修改Tomcat默认应用

删除$CATALINA_HOME/webapps和$CATALINA_HOME/temp目录;
将文件夹$CATALINA_HOME/conf/Catalina改名为Standalone。

2.2 添加ROOT应用

$CATALINA_HOME/conf/Standalone/localhost/ROOT.xml

<?xml version=”1.0” encoding=”utf-8”?>
<Context path=”” docBase=”E:/Project/wwwroot”
         displayName=”Tomcat 1” debug=”0” privileged=”true” 
         antiResourceLocking=”false” antiJARLocking=”false”>

 <!—Default set of monitored resources -->

 <WatchedResource>WEB-INF/web.xml</WatchedResource>

</Context>


2.3 修改server.xml

$CATALINA_HOME/conf/server.xml

操作步骤

默认

Tomcat 1

Tomcat 2

2.3.1 修改Server端口

8005

10005

20005

2.3.2 修改AJP Connector端口

     Apache JServ Protocol 1.3

8009

10009

20009

2.3.3 修改HTTPConnector端口

8080

10001

20001

2.3.4 修改redirectPort端口

8443

10043

20043

2.3.5 屏蔽Catalina,打开Standalone,并修改jvmRoute的值为Tomcat1/Tomcat2

2.3.6打开Cluster,修改tcpListenPort

4001

10011

20011

2.4 修改web.xml 

$CATALINA_HOME/conf/web.xml

(添加)<distributable/>

        或者

$CATALINA_HOME/conf/Standalone/*/ROOT.xml

(设置)<Context distributable="true" …/>

        设置集群,session共享。

3、 配置Apache HTTP代理,实现负载均衡

有三种方法实现Tomcat的负载均衡:

a. 使用JK本地连接器(Tomcat-Apache通信插件,JServ->JK->JK2->AJServP);
b. 使用2.x版本的Aache HTTP服务器的代理模块;
c. 使用Tomcat的blancer web应用。

$APACHE_HOME/conf/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
LoadModule proxy_http_module modules/mod_proxy_http.so

ProxyRequests Off

ProxyPass / balancer://myCluster/
<Proxy balancer://myCluster/>
       BalancerMember ajp://localhost:10009 route=Tomcat1
       BalancerMember ajp://localhost:20009 route=Tomcat2
</Proxy>


       至此,Apache和Tomcat已经安装、配置完毕,可以依次运行两个Tomcat(/bin/startup.bat)和Apache程序(Apache Monitor)。

注:
(1) 若系统设置了系统变量CATALINA_HOME,需修改/bin/startup.bat,屏蔽下面的代码:
#if not "%CATALINA_HOME%" == "" goto gotHome
(2) Apache只是一个代理服务器,所有的请求全部转至Tomcat处理,故启用ROOT应用。

4、 优化Tomcat配置

4.1 屏蔽HTTP Connector

 

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<!--
<Connector port="8080" …/>
-->

<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<!--
<Connector port="8443" …/>
-->


4.2 配置虚拟主机

4.2.1 编辑server.xml的Engine,添加Host信息

$CATALINA_HOME/conf/server.xml

<Engine name="Standalone" defaultHost="localhost" jvmRoute="Tomcat1">

       <Host name="localhost" appBase="webapps" …>… …</Host>

       <Host name="www.site.com" appBase="webapps/www.site.com"/>

    <Host name="www.site.net" appBase="webapps/www.site.net"/>

</Engine>

4.2.2 创建虚拟主机对应的Webapp目录

 

$CATALINA_HOME/webapps/www.site.com

$CATALINA_HOME/webapps/www.site.net

均为空目录

4.2.3 创建虚拟主机   

$CATALINA_HOME/conf/Standalone/www.site.com/ROOT.xml

$CATALINA_HOME/conf/Standalone/www.site.net/ROOT.xml

<?xml version="1.0" encoding="utf-8"?>

<Context path="" docBase="E:/Project/{site name}" …>

 <WatchedResource>WEB-INF/web.xml</WatchedResource>

</Context>

另一个Tomcat Node也做类似的修改,并分别重启两个Tomcat。

4.3 配置GBK编码

 

$CATALINA_HOME/conf/server.xml

    <!-- Define an AJP 1.3 Connector on port 10009 -->

    <Connector port="10009" URIEncoding="GBK"

               enableLookups="false" redirectPort="10443" protocol="AJP/1.3" />


5、测试程序 

init.jsp

<%

session.setAttribute("name",request.getParameter("name"));

out.println("success!" + session.getId());

%>

testRoute.jsp

<%

String test = session.getId() + " - " + session.getAttribute("name");

System.out.println( new java.util.Date() + ":" + test);

out.println( test );

%>

访问 http://localhost/init.jsp?name=HAHA(只须执行一次)
访问 http://localhost/testRoute.jsp
访问多次就可以发现,两个Tomat服务器是均衡的,且session共享。
 

另外,还可以设置路由JSESSIONID

$CATALINA_HOME/conf/server.xml

<!-- sessionIdAttribute default attribute name is

 org.apache.catalina.cluster.session.JvmRouteOrignalSessionID.

 JSESSIONID.{orignal node id} à

<Valve className="org.apache.catalina.cluster.session.JvmRouteBinderValve"

       enabled="true" sessionIdAttribute="takeoverSessionid"/>

<ClusterListener className="org.apache.catalina.cluster.session.JvmRouteSessionIDBinderListener" />

 

参考资料
       Apache Proxy Module    http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
       Apache Balancer Module       http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html
       Tomcat 5.5 Load Balancer     http://tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html
       Tomcat 5.5 Clustering/Session Replication   http://tomcat.apache.org/.../cluster-howto.html
       Apache Tomcat 5.5 Proxy     http://tomcat.apache.org/tomcat-5.5-doc/proxy-howto.html

(全文完)
[补][推荐]Apache HTTP Server 与 Tomcat 的三种连接方式介绍(刘 冬@IBM) http://www-128.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html
posted on 2007-04-23 16:56 Xu Jianxiang 阅读(1469) 评论(6)  编辑  收藏 所属分类: Open SourceServer Side

Windows下Apache+Tomcat实现应用集群

 Windows下Apache+Tomcat实现应用集群 1 环境依赖:windows、jdk1.6、Apache2.2、tomcat6.0 2 Jdk1.6安装 2.1 略 3 安装A...
  • maguanghui_2012
  • maguanghui_2012
  • 2016年02月04日 15:40
  • 1446

在Windows环境下的Tomcat + Apache配置整合,集群

环境:Windows 7 所需要的软件: Apache  :apache_2.0.55     1 个 Tomcat:  apache-tomcat-5.5.17 (zip版) 2个 mo...
  • u010581811
  • u010581811
  • 2013年07月19日 13:42
  • 2548

Apache+Tomcat集群实现反向代理负载均衡

一. Apache+Tomcat集群实现反向代理的负载均衡的原理: Apache作为调度器,转发HTTP请求。然后等待实际服务器的HTTP响应,并转发给用户。 Tomcat集群作为实际的服务器,处...
  • sunroyi666
  • sunroyi666
  • 2016年08月18日 11:19
  • 1115

window环境下apache+tomcat 反向代理集群配置教程

首先,贴出对我帮助最大的两篇文章的地址,感谢开放的互联网๑乛◡乛๑ http://www.cnblogs.com/f1194361820/p/5110956.html http://blog.csdn...
  • qq_34545192
  • qq_34545192
  • 2017年07月25日 18:26
  • 340

tomcat+apache+mod_proxy代理模式配置集群

Tomcat6.0+Apache2.2+mod_proxy模式搭建集群
  • zfy1355
  • zfy1355
  • 2014年11月29日 19:33
  • 870

Apache2.4+tomcat7.0 配置反向代理和负载均衡及session集群

在网上看了好多资料,都不完美,没有一篇能按照步骤,配置成功的,故写下自己配置成功的步骤: 配置环境: 系统win8(64位) JKD1.7     Apache2.4     tomcat7.0 ...
  • maguanghui_2012
  • maguanghui_2012
  • 2016年02月04日 17:45
  • 2529

Apache负载均衡与Tomcat集群配置学习(Windows环境)

本文主要参考自http://www.iteye.com/topic/985404?dhcc,经由实际操作配置操并记录而成。         由于最近的一个Java开发项目用到了Tomcat中间件作为w...
  • limingzhong198
  • limingzhong198
  • 2012年06月16日 15:02
  • 8823

在Windows环境下的Tomcat + Apache配置整合,集群

环境:Windows 7 所需要的软件: Apache  :apache_2.0.55     1 个 Tomcat:  apache-tomcat-5.5.17 (zip版) 2个 mo...
  • u010581811
  • u010581811
  • 2013年07月19日 13:42
  • 2548

Windows下Apache2.2+Tomcat6配置集群、负载均衡、session共享

转自:http://yulinyyb001.iteye.com/blog/1308609 公司网站有一个需求:要保证网站7*24小时不间断的运行,服务器更新时,对用户是透明的。   ...
  • dragonpeng2008
  • dragonpeng2008
  • 2011年12月14日 11:23
  • 1313

Windows中Apache2.2 Tomcat7 集群配置

今天终于搞定了Apache和tomcat7整合集群以及负载均衡的问题,在此做个记录。客户的网站有时候会因为一个tomcat6的错误down掉,又比较难查出示什么原因,而且是没什么规律的。所以狠下心来做...
  • yys79
  • yys79
  • 2011年05月10日 15:09
  • 7950
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows 2003下配置Apache代理Tomcat集群
举报原因:
原因补充:

(最多只允许输入30个字)