- 浏览: 96875 次
- 性别:
- 来自: 南京市
最新评论
-
fengfan2008:
很多产品图片是一样的, 其实不存在你说的问题;
www.8brl.cn网站上线了,请大家多多指教 -
yekui:
搜索出结果后,点击上架时间排序,出现了跳跃,请LZ查看。整体还 ...
www.8brl.cn网站上线了,请大家多多指教 -
解未知数:
恩,不错..
javascript实现HTML在线编辑器 -
hnzhoujunmei:
你想说明什么问题,有源码实现吗?
java发送手机短信 -
yasaso:
不错 收藏了, 感谢楼主分享
apache&tomcat集群
搭建集群和实现负载平衡
部分参考:
http://ispring.iteye.com/blog/374272
http://wangcheng.iteye.com/blog/66928
http://ajava.org/course/server/13877.html
(一)前期准备
我的系统用的是windowsXP专业版,我要做的是,用一个apache和多个(这里以两个作为示例)tomcat,通过jk方式,构造一个集群。以下是要首先准备的东西:
1、jdk,我用的版本是jdk1.5.0_06,下载地址是http://192.18.108.216/ECom/EComTicketServlet/BEGIND597A309654D73D910E051D73D539D5F/-2147483648/2438196255/1/852050/851882/2438196255/2ts+/westCoastFSEND/jdk-1.5.0_13-oth-JPR/jdk-1.5.0_13-oth-JPR:3/jdk-1_5_0_13-windows-i586-p.exe
2、apache,我用的版本是2.2.4,下载地址是http://apache.justdn.org/httpd/binaries/win32/apache_2.2.4-win32-x86-openssl-0.9.8d.msi
3、tomcat,我用的版本是6.0.18的解压版本,这里要注意:不能用安装的版本,因为一台机器上装两个一样的tomcat,是会出错误的。下载地址是
4、jk,这个jk的版本,本来有两个的,但是版本2已经被废弃掉了,目前可用的jk版本是1.2.25。每个apache的版本,都会有一个特定的jk与之对应,所以这里要用的jk也必须是为apache-2.2.4开发的那个才行。它的下载地址是http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.25/mod_jk-apache-2.2.4.so
有了这四样东西,我们就可以开始做集群了。
(二)安装
1、相信需要看这篇文章的人,JDK的安装一定不会陌生,这里不在赘述。只是需要提醒一下:环境变量别忘记配置了。
2、安装apache也没有什么难度,就是在安装过程中要配置域名、网址和管理员邮箱之类的信息,这个信息完全可以按照提示,然后修改下填入即可,之后想修改的话直接到配置文件中改就行了。除了这个地方,还要保证机器上的80端口没有被其他程序占用。至于安装路径,完全取决于个人爱好。其他的默认就行了。安装成功后,系统右下角的托盘区会有个图标,我们可以通过这个启动apache,如果那个小红点变成绿色,说明服务已经正常启动了(如果服务没有启动起来,说明安装过程中的配置有错误,建议卸载后重装)。如果按照默认,端口是80的话,那打开浏览器,输入:http://localhost/ ,应该可以看到 " It works “的字样。这样就可以进入下一步了。
3、解压缩tomcat,记得要做两份。这里不妨将两个tomcat命名为:apache-tomcat-6.0.18-1_1和apache-tomcat-6.0.18-1_2,其实这两个文件夹中的东西是完全一样的。但是我为了在同一台机器上做集群,那就要保证两个 tomcat运行起来不会在端口上起冲突。进入apache-tomcat-6.0.18-1_1/conf目录,用文本编辑器打开并修改server.xml,将该 tomcat的默认8080端口改为8081(其实没必要改,我改这个是因为我机器上还有其他tomcat占用着8080端口)。然后进入apache-tomcat-6.0.18-1_2/conf目录,同样将8080修改掉,至于改成多少没多大关系,只要不占用其他程序的端口,应该不会出什么问题。这样,tomcat就算安装好了。
4、jk这东西是一个连接模块,不用安装,直接将mod_jk-apache-2.2.4.so这个文件拷贝到apache安装目录下的modules文件夹下面就行了。
这样,安装完成,下面开始配置。
(三)配置
这个地方才是搭建集群的关键所在,我也会尽我的可能写的详细点。
1、配置tomcat
为防止冲突,进入第二个tomcat主目录,然后进入conf目录,打开server.xml修改配置。主要是修改端口,我这里把所有的端口信息,都在原有基础上加1000,即原端口是8009,我改为9009。当然,你不必和我一样,只要保证不冲突就 OK!这些配置在apache的配置中可能会用到。
2、配置apache
(1)进入apache的主目录,然后进入conf文件夹,用文本编辑器打开httpd.conf,在该文件末尾加上如下几行:
### 加载 mod_jk 模块
LoadModule jk_module modules/mod_jk-apache-2.2.4.so
### 配置 mod_jk
#加载集群中的workers
JkWorkersFile conf/workers.properties
#加载workers的请求处理分配文件
JkMountFile conf/uriworkermap.properties
#指定jk的日志输出文件
JkLogFile 'logs/mod_jk.log'
#指定日志级别
JkLogLevel warn
(2)不要改变目录,新建一个文件:workers.properties,该文件用来配置web容器的信息。该文件的内容如下:
# worker列表
worker.list=controller
#第一个server的配置,server名为s1
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.s1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.s1.host=localhost
worker.s1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.s1.lbfactor=1
#第二个server的配置,server名为s2
worker.s2.port=8019
worker.s2.host=localhost
worker.s2.type=ajp13
worker.s2.lbfactor=1
#server名为controller,用于负载均衡
worker.controller.type=lb
#重试次数
worker.retries=3
#指定分担请求的server列表,用逗号分隔
worker.controller.balance_workers=s1,s2
#设置用于负载均衡的server的session可否共享 有不少文章说设置为1是可以的,但是我是设置为0才可以的
worker.controller.sticky_session=0
#worker.controller.sticky_session_force=1
#by wsf worker.status.type=status
(3)不要改变目录,新建一个文件:uriworkermap.properties,文件内容如下:
#所有请求都由controller这个server处理
/*=controller
#所有包含jkstatus请求的都由status这个server处理
/jkstatus=status
#所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思
/*.gif=controller
/*.jpg=controller
/*.png=controller
/*.css=controller
/*.js=controller
/*.htm=controller
/*.html=controller
这里的"!”类似于java中的"!”,是“非”的意思。
这样,apache一块就配置好了。
3、再修改tomcat配置:这里两个tomcat都要配置。
仍然是打开第一步中的那个server.xml文件,找到<Engine name="Catalina" defaultHost="localhost">这一行,在里面加上一句:jvmRoute="s1",即把该句改为:<Engine name="Catalina" defaultHost="localhost" jvmRoute="s1">。这里的s1就是第二步中配置的用于负载均衡的server的名称。如果该tomcat的端口是第二步中s1用的端口,那这里就写s1,第二个tomcat就应该是s2了。
这样,配置就完成了。
集群配置
集群除了负载均衡,另一个主要功能是Session Replication。
打开tomcat1\conf\ server.xml将<Cluster>部分的注释去掉。
再打开tomcat2\conf\ server.xml将<Cluster>部分的注释也去掉,并将<Cluster>中<Receiver>的tcpListenPort的值改为4002。以避免与Tomcat1冲突。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4001"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
添加一个新的测试程序test2.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.println("<b>Session 列表</b><br>");
System.out.println("============================");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="test2.jsp" method="POST">
名称:<input type=text size=20 name="dataName">
<br>
值:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>
分别在2个tomcat的webapps\test中新建WEB-INF目录,在WEB-INF中添加web.xml内容如下:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>TomcatDemo</display-name>
<distributable/>
</web-app>
主要是添加<distributable/>,distributable元素用来告诉servlet容器,程序将部署在分布式Web容器中。
重新启动tomcat1和tomcat2. 访问http://localhost:8080/test/test2.jsp (或http://localhost/test/test2.jsp)
随意添加key-value, 可以看到两个tomcat交替显示session中的值,各个tomcat的session是同步的。
再来修改tomcat1\conf\server.xml,找到
<Engine name="Catalina" defaultHost="localhost">
为其添加jvmRoute属性,值为apache的conf\workers.properties中配置的tomcat名字。
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
同样修改tomcat2\conf\server.xml的相同部分
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
jvmRoute是tomcat路由标示,由此区分两台tomcat主机。一次会话,就有一个sessionID,这个sessionID后面会跟上jvmRoute设置的值,这样一次会话,就只会让一个tomcat处理。
重新启动tomcat1, tomcat2
访问http://localhost:8080/test/test2.jsp 可以看到session.getId()的值在原session id后面多了jvmRoute的值。
ID 46A5843FF4A1E0A84338225AC02F6430.tomcat1
随意添加key-value,可以看到session信息只在tomcat1中输出。
再打开一个浏览器,并访问http://localhost:8080/test/test2.jsp 其session id可能变为
ID 11478E5BE5FE388E4845205B4133A30F.tomcat2
其值也只会在tomcat2中输出。
现在把tomcat1关闭,再次刷新访问tomcat1的那个浏览器,可以看到session信息输出到了tomcat2的控制台中,并且session信息仍然保留着。
(四)运行
进入两个tomcat的bin目录,执行两个tomcat的startup.bat启动这两个 tomcat,然后将apache重新启动后,运行起来看看效果吧。如果不出意外,两个tomcat的窗口应该是你一次我一次的打印日志信息了,而且此时 session也是共享了的。
到这里,集群搭建好了,负载均衡也实现了
部分参考:
http://ispring.iteye.com/blog/374272
http://wangcheng.iteye.com/blog/66928
http://ajava.org/course/server/13877.html
(一)前期准备
我的系统用的是windowsXP专业版,我要做的是,用一个apache和多个(这里以两个作为示例)tomcat,通过jk方式,构造一个集群。以下是要首先准备的东西:
1、jdk,我用的版本是jdk1.5.0_06,下载地址是http://192.18.108.216/ECom/EComTicketServlet/BEGIND597A309654D73D910E051D73D539D5F/-2147483648/2438196255/1/852050/851882/2438196255/2ts+/westCoastFSEND/jdk-1.5.0_13-oth-JPR/jdk-1.5.0_13-oth-JPR:3/jdk-1_5_0_13-windows-i586-p.exe
2、apache,我用的版本是2.2.4,下载地址是http://apache.justdn.org/httpd/binaries/win32/apache_2.2.4-win32-x86-openssl-0.9.8d.msi
3、tomcat,我用的版本是6.0.18的解压版本,这里要注意:不能用安装的版本,因为一台机器上装两个一样的tomcat,是会出错误的。下载地址是
4、jk,这个jk的版本,本来有两个的,但是版本2已经被废弃掉了,目前可用的jk版本是1.2.25。每个apache的版本,都会有一个特定的jk与之对应,所以这里要用的jk也必须是为apache-2.2.4开发的那个才行。它的下载地址是http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.25/mod_jk-apache-2.2.4.so
有了这四样东西,我们就可以开始做集群了。
(二)安装
1、相信需要看这篇文章的人,JDK的安装一定不会陌生,这里不在赘述。只是需要提醒一下:环境变量别忘记配置了。
2、安装apache也没有什么难度,就是在安装过程中要配置域名、网址和管理员邮箱之类的信息,这个信息完全可以按照提示,然后修改下填入即可,之后想修改的话直接到配置文件中改就行了。除了这个地方,还要保证机器上的80端口没有被其他程序占用。至于安装路径,完全取决于个人爱好。其他的默认就行了。安装成功后,系统右下角的托盘区会有个图标,我们可以通过这个启动apache,如果那个小红点变成绿色,说明服务已经正常启动了(如果服务没有启动起来,说明安装过程中的配置有错误,建议卸载后重装)。如果按照默认,端口是80的话,那打开浏览器,输入:http://localhost/ ,应该可以看到 " It works “的字样。这样就可以进入下一步了。
3、解压缩tomcat,记得要做两份。这里不妨将两个tomcat命名为:apache-tomcat-6.0.18-1_1和apache-tomcat-6.0.18-1_2,其实这两个文件夹中的东西是完全一样的。但是我为了在同一台机器上做集群,那就要保证两个 tomcat运行起来不会在端口上起冲突。进入apache-tomcat-6.0.18-1_1/conf目录,用文本编辑器打开并修改server.xml,将该 tomcat的默认8080端口改为8081(其实没必要改,我改这个是因为我机器上还有其他tomcat占用着8080端口)。然后进入apache-tomcat-6.0.18-1_2/conf目录,同样将8080修改掉,至于改成多少没多大关系,只要不占用其他程序的端口,应该不会出什么问题。这样,tomcat就算安装好了。
4、jk这东西是一个连接模块,不用安装,直接将mod_jk-apache-2.2.4.so这个文件拷贝到apache安装目录下的modules文件夹下面就行了。
这样,安装完成,下面开始配置。
(三)配置
这个地方才是搭建集群的关键所在,我也会尽我的可能写的详细点。
1、配置tomcat
为防止冲突,进入第二个tomcat主目录,然后进入conf目录,打开server.xml修改配置。主要是修改端口,我这里把所有的端口信息,都在原有基础上加1000,即原端口是8009,我改为9009。当然,你不必和我一样,只要保证不冲突就 OK!这些配置在apache的配置中可能会用到。
2、配置apache
(1)进入apache的主目录,然后进入conf文件夹,用文本编辑器打开httpd.conf,在该文件末尾加上如下几行:
### 加载 mod_jk 模块
LoadModule jk_module modules/mod_jk-apache-2.2.4.so
### 配置 mod_jk
#加载集群中的workers
JkWorkersFile conf/workers.properties
#加载workers的请求处理分配文件
JkMountFile conf/uriworkermap.properties
#指定jk的日志输出文件
JkLogFile 'logs/mod_jk.log'
#指定日志级别
JkLogLevel warn
(2)不要改变目录,新建一个文件:workers.properties,该文件用来配置web容器的信息。该文件的内容如下:
# worker列表
worker.list=controller
#第一个server的配置,server名为s1
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.s1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.s1.host=localhost
worker.s1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.s1.lbfactor=1
#第二个server的配置,server名为s2
worker.s2.port=8019
worker.s2.host=localhost
worker.s2.type=ajp13
worker.s2.lbfactor=1
#server名为controller,用于负载均衡
worker.controller.type=lb
#重试次数
worker.retries=3
#指定分担请求的server列表,用逗号分隔
worker.controller.balance_workers=s1,s2
#设置用于负载均衡的server的session可否共享 有不少文章说设置为1是可以的,但是我是设置为0才可以的
worker.controller.sticky_session=0
#worker.controller.sticky_session_force=1
#by wsf worker.status.type=status
(3)不要改变目录,新建一个文件:uriworkermap.properties,文件内容如下:
#所有请求都由controller这个server处理
/*=controller
#所有包含jkstatus请求的都由status这个server处理
/jkstatus=status
#所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思
/*.gif=controller
/*.jpg=controller
/*.png=controller
/*.css=controller
/*.js=controller
/*.htm=controller
/*.html=controller
这里的"!”类似于java中的"!”,是“非”的意思。
这样,apache一块就配置好了。
3、再修改tomcat配置:这里两个tomcat都要配置。
仍然是打开第一步中的那个server.xml文件,找到<Engine name="Catalina" defaultHost="localhost">这一行,在里面加上一句:jvmRoute="s1",即把该句改为:<Engine name="Catalina" defaultHost="localhost" jvmRoute="s1">。这里的s1就是第二步中配置的用于负载均衡的server的名称。如果该tomcat的端口是第二步中s1用的端口,那这里就写s1,第二个tomcat就应该是s2了。
这样,配置就完成了。
集群配置
集群除了负载均衡,另一个主要功能是Session Replication。
打开tomcat1\conf\ server.xml将<Cluster>部分的注释去掉。
再打开tomcat2\conf\ server.xml将<Cluster>部分的注释也去掉,并将<Cluster>中<Receiver>的tcpListenPort的值改为4002。以避免与Tomcat1冲突。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4001"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
添加一个新的测试程序test2.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.println("<b>Session 列表</b><br>");
System.out.println("============================");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="test2.jsp" method="POST">
名称:<input type=text size=20 name="dataName">
<br>
值:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>
分别在2个tomcat的webapps\test中新建WEB-INF目录,在WEB-INF中添加web.xml内容如下:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>TomcatDemo</display-name>
<distributable/>
</web-app>
主要是添加<distributable/>,distributable元素用来告诉servlet容器,程序将部署在分布式Web容器中。
重新启动tomcat1和tomcat2. 访问http://localhost:8080/test/test2.jsp (或http://localhost/test/test2.jsp)
随意添加key-value, 可以看到两个tomcat交替显示session中的值,各个tomcat的session是同步的。
再来修改tomcat1\conf\server.xml,找到
<Engine name="Catalina" defaultHost="localhost">
为其添加jvmRoute属性,值为apache的conf\workers.properties中配置的tomcat名字。
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
同样修改tomcat2\conf\server.xml的相同部分
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
jvmRoute是tomcat路由标示,由此区分两台tomcat主机。一次会话,就有一个sessionID,这个sessionID后面会跟上jvmRoute设置的值,这样一次会话,就只会让一个tomcat处理。
重新启动tomcat1, tomcat2
访问http://localhost:8080/test/test2.jsp 可以看到session.getId()的值在原session id后面多了jvmRoute的值。
ID 46A5843FF4A1E0A84338225AC02F6430.tomcat1
随意添加key-value,可以看到session信息只在tomcat1中输出。
再打开一个浏览器,并访问http://localhost:8080/test/test2.jsp 其session id可能变为
ID 11478E5BE5FE388E4845205B4133A30F.tomcat2
其值也只会在tomcat2中输出。
现在把tomcat1关闭,再次刷新访问tomcat1的那个浏览器,可以看到session信息输出到了tomcat2的控制台中,并且session信息仍然保留着。
(四)运行
进入两个tomcat的bin目录,执行两个tomcat的startup.bat启动这两个 tomcat,然后将apache重新启动后,运行起来看看效果吧。如果不出意外,两个tomcat的窗口应该是你一次我一次的打印日志信息了,而且此时 session也是共享了的。
到这里,集群搭建好了,负载均衡也实现了
- 配置方法1.rar (79.7 KB)
- 下载次数: 39
发表评论
-
网站性能测试一
2012-05-14 13:24 1139在说明性能测试之前我 ... -
www.8brl.cn网站上线了,请大家多多指教
2012-02-02 13:12 1490http://www.8brl.cn经过一段时间的研发终于上线 ... -
SSH问题及解决之三 SpringSide3缺陷
2010-10-13 15:03 2439http://code.google.com/p/spring ... -
SSH问题及解决之二 级联配置
2010-10-11 14:06 3510系统开发过程中采用Hibernate+JPA: 在一个Grou ... -
java发送手机短信
2010-10-11 10:05 2121java领域实现向手机发短信有三种途径: 1. smsl ... -
MyEclipse+Tomcat编程技巧
2010-09-24 10:26 1068为了调试的方便我把公司maven结构的项目重组成MyEclip ... -
SSH问题及解决之一 Hibernate中实体属性存在关键字及p6spy的使用
2010-09-24 10:17 14691. 在使用Strust2+Spring3+Hibernate ... -
CXF的第一个例子helloWorld
2009-11-03 16:08 2804公司要采用WebService作为数据提供平台,经过研究决定使 ... -
Openfire架设自己的即时聊天服务器
2009-10-22 11:10 2802一、安装环境 操作系统:Windows XP Prefess ... -
提高Java程序的GC效率
2009-09-18 10:49 11071.java的GC程序是一个由JVM实现的对用户透明的程序, ... -
JAVA网络程序的安全
2009-09-18 10:40 9611.数据安全传输: 编码+加密+数字签名. java中提供 ... -
字符串处理
2009-06-16 16:19 829许多开发人员在做项目 ... -
java.util.list操作
2009-06-15 14:15 1226如何让集合的长度能自动改变,能够增加/删除元素呢?这就是用 ... -
Log4J使用完全手册
2009-05-11 16:24 907Log4 J是Apache的一个开放源代码项目(http:// ... -
运行多个TestCase中的testsuite
2009-05-07 16:20 1349import junit.framework.TestSu ... -
只运行部分testcase
2009-05-07 16:18 740package com.ff.ldap; import ... -
struts + spring + hibernate整合事务配置的问题
2009-02-06 15:03 1248一个关于struts + spring + hibernate ... -
Log4j的使用
2008-09-07 17:09 1434一、简介 在程序中输出信息的目的有三:一是监视程序运行情况 ... -
谈谈SSH开发中权限的控制
2008-08-03 15:27 2814通过编写一个继承RequestProcessor的MyRequ ... -
如何用Java对图片jpg, gif进行压缩
2008-08-03 15:19 1466如何用Java对图片jpg, gif进行压缩
相关推荐
Apache + Tomcat 集群配置 Apache + Tomcat 集群配置是指将 Apache 服务器与 Tomcat 服务器集成,以提高服务器的性能和可扩展性。本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器...
Apache+Tomcat集群配置,Apache+Tomcat集群配置,Apache+Tomcat集群配置
在IT领域,特别是企业级应用服务环境中,Apache与Tomcat的集群配置与负载均衡是提升系统性能、确保高可用性和可扩展性的关键策略之一。在Windchill 9这一特定背景下,通过Apache作为前端代理服务器,配合多个Tomcat...
反向代理负载均衡 Apache + Tomcat集群 多的我也不多说了 看文档
Apache+Tomcat集群是一种常见的Web服务器和应用服务器集群架构,用于提高网站的可用性和可扩展性。Apache作为前端服务器,负责接收客户端的HTTP请求,并根据配置的负载均衡策略将这些请求转发给后端的多个Tomcat实例...
在Linux环境中,通过Apache HTTP服务器(简称Apache)搭建Tomcat集群是一种常见的高可用性和负载均衡配置方式。Apache作为反向代理服务器,可以将用户的请求分发到多个Tomcat实例上,从而实现应用服务的扩展和容错。...
### Apache和Tomcat集群配置详解 #### 一、软件准备 在进行Apache和Tomcat集群配置之前,首先需要准备所需的软件资源。 - **Apache 2.2**: - Windows平台: 从官方网站 [http://httpd.apache.org/download.cgi]...
Apache和tomcat集群部署配置文件案例,包含Apache中的配置文件httpd.conf,mod_jk.conf,workers.properties,以及tomcat中配置文件server.xml
Apache,Tomcat集群和负载均衡包括了apache-tomcat-5.5.29.zip,apache_2.2.4-win32-x86-no_ssl.msi,mod_jk-1.2.28-httpd-2.2.3.so,ApacheTomcat整合文档.doc,Apache,Tomcat集群和负载均衡教程.doc,Tomcat负载...
apache tomcat负载集群,appache负载,tomcat负载
全套服务器集群的配置文件,tomcat 配置一个,可复制3个 修改端口和地址。tomcat 版本 TOMCAT7 . apache 配置文件3个 版本 httpd-2.0.65-win32-x86-no_ssl.msi apache-tomcat-7.0.34-64 mod_jk mod_jk-1.2.31-...
Apache+Tomcat集群配置续Apache+Tomcat集群配置续Apache+Tomcat集群配置续Apache+Tomcat集群配置续
下面将详细介绍在64位Windows系统上配置Apache和Tomcat集群的步骤及注意事项。 **一、Apache负载均衡配置** 1. **安装Apache HTTP Server**:首先,你需要下载并安装适用于64位Windows系统的Apache服务器。确保...
本文将详细介绍如何在一机双Tomcat环境下搭建Apache+Tomcat集群,并深入解析其中的关键配置和技术细节。 #### 二、Apache+Tomcat集群的优势 1. **高可靠性(HA)**:通过集群管理软件实现在主服务器发生故障时,备份...