- 浏览: 52028 次
- 性别:
- 来自: 广州
最新评论
看了不少关于配置apache+tomcat集群的文章,按部就班的做,基本上能成功。可是软件的更新很快,一些老的配置已经不能满足需求,而一些新的配置也不能尽如人意,结合网上的实例,下面将我配置的过程做一个描述:
1 为什么要做集群?
集群有别于分布式的解决方案,它采用的是每台服务器运行相同应用的策略,由负责平衡的服务器进行分流,这对提高整个系统的并发量及吞吐量是更有效的办法。而集群对请求的处理又有两种不同的方式:负载平衡、状态复制(即集群),状态复制需要在各服务器间复制应用状态,而负载平衡则不用,每台服务器都是独立的。实践证明,在各应用服务器之间不需要状态复制的情况下,负载平衡可以达到性能的线性增长及更高的并发需求。
2 集群与负载平衡的区别
因为是以Apache + Tomcat+ JK 的负载平衡配置作为介绍,下面重点了解就JK的工作方式
使用mod_jk默认的以轮循方式进行平衡负载,假设有四个服务器节点,有10个请求,则四个节点分别接受请求编号如下:
节点A 节点B 节点C 节点D
1 2 3 4
5 6 7 8
9 10
而集群方式也是使用这种方法进行平衡。Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。
集群不同于负载平衡的是,由于集群服务需要在处理请求之间不断地进行会话复制,复制后的会话将会慢慢变得庞大,因此它的资源占用率是非常高的,如果在并发量大的应用中,复制的会话大小会变得相当大,而使用的总内存更是会迅速升高。
但集群的会话复制,增加了系统的高可用性。由于在每台服务器都保存有用户的Session信息,如果服务器群中某台当机,应用可以自动切换到其它服务器上继续运行,而用户的信息不会丢失,这提高了应用的冗错性。
具体采用负载平衡还是集群,这要看应用的需求了。
3 软件下载
Tomcat: http://archive.apache.org/dist/tomcat/我使用的是tomcat-5;
Apache: http://archive.apache.org/dist/httpd/ 一般使用Apache2.2的版本
JK:mod_jk-1.2.x-httpd-2.2.x.so。jk是mod_jserv的替代者,它是Tomcat-Apache插件,为Apache和Tomcat的连接器,处理Tomcat和Apache之间的通信,在集群配置中充当负载均衡器的作用,当前的最新版本为1.2.26,不过不同JK版本与不同的Apache版本之间的搭配有一些差异,有的甚至配不起来。JK2是符合apache2.x系列的新品,但由于其配置太过麻烦,使用的人很少,很久以前已停止开发,所以我们采用了jk连接器,下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries
值得注意的是:jk的版本最好和当前的Apache匹配。
说了这么多了,可能下面才是大家要关注的重点。
4 配置Apache
4.1 为了简便 ,可以下载Apache的安装文件,安装很简单,一路Next
4.2 安装完毕后,将下载的mod_jk-1.2.x-httpd-2.2.x.so复制到Apache安装目录下的modules子目录中。
关于Apache的配置文件,可以在网上查看下子资料,如设置DocumentRoot(部署根目录),Listen(监听端口)等等,这里不再赘述。
4.3 然后进入Apache安装目录下的conf子目录中,打开httpd.conf配置文件,在最后插入以下一行:
Include conf/mod_jk.conf
这样便于管理和修改配置文件。
4.4 在conf子目录下,建立一个新的配置文件:mod_jk.conf,此文件为Apache加载连接器的配置文件,文件名可修改,但要与httpd.conf中Include的文件名一致,内容如下:
# Load mod_jk module. Specify the filename
# of the mod_jk lib you’ve downloaded and
# installed in the previous section
#加载mod_jk模块
LoadModule jk_module modules/mod_jk-1.2.x-httpd-2.2.x.so(x表示版本号)
# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
#JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 请求分发配置,可以配置多项
JkMount /* loadbalancer
JkMount /jkstatus status
!/*.gif loadbalancer
!/*.jpg loadbalancer
!/*.png loadbalancer
!/*.css loadbalancer
!/*.js loadbalancer
!/*.htm loadbalancer
!/*.html loadbalancer
#关掉主机Lookup,如果为on,很影响性能,可以有10多秒钟的延迟。
HostnameLookups Off
注:1、 蓝色加粗的两行是重点,第一句是Apache加载JK模块用的;第二句为配置哪些URL请求将由负载平衡器来处理。
2、/* 匹配所有的请求,都由 loadbalancer 这个 worker 进行处理,但是有几个例外,/jkstatus 请求由 status 这个 worker 处理。另外这个配置中每一行数据前面的感叹号表示接下来的 URI 不要由 JK 进行处理,也就是 Apache直接处理所有的图片、css 文件、js 文件以及静态 html 文本文件。
4.5 在conf子目录下,建立一个新的配置文件:workers.properties,此文件为负载平衡的配置文件,文件名不能修改,这是JK默认的名字,内容如下:
worker.list=loadbalancer
# Define the first node...
worker.worker1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.worker1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
worker.worker1.local_worker=1
worker.worker1.cachesize=1000
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=0
worker.worker1.reclycle_timeout=300
worker.worker1.retries=3
# Define the second node...
worker.worker2.port=9009 #ajp13 端口号,在tomcat下server.xml配置,默认8009,其他 主机可以用默认的端口
worker.worker2..host=localhost
worker.worker2..type=ajp13
worker.worker2..lbfactor=1
worker.worker2..local_worker=1
worker.worker2..cachesize=1000
worker.worker2..cache_timeout=600
worker.worker2..socket_keepalive=1
worker.worker2..socket_timeout=0
worker.worker2..reclycle_timeout=300
worker.worker2..retries=3
# Now we define the load-balancing behaviour
worker.loadbalancer.type=lb
worker.retries=3
worker.loadbalancer.balance_workers=worker1,worker2
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=true
注:以上定义了两个worker,一个为worker1,另一个为worker2,定义了一个负载平衡服务器loadbalancer,其中标蓝色的为重点配置项,相关的详细说明可以看官方的网站文档:http://tomcat.apache.org/connectors-doc/,其它节点的定义可以直接Copy,修改一下节点名及IP就好了。
A、worker.list=loadbalancer
设定工作的负载平衡器,各Tomcat节点不能加入此列表。
B、worker.worker1.lbfactor
负载平衡的权重比,如果此权重比越大,则分配到此节点的请求越多,如以上两个节点的权重比为1:1,则为平均分配。
C、worker.loadbalancer.balance_workers=worker1,worker2
指定此负载平衡器负责的Tomcat应用节点。
D、worker.loadbalancer.sticky_session=true
此处指定集群是否需要会话复制,如果设为true,则表明为会话粘性,不进行会话复制,当某用户的请求第一次分发到哪台Tomcat后,后继的请求会一直分发到此Tomcat服务器上处理;如果设为false,则表明需求会话复制。
E、worker.loadbalancer.sticky_session_force=true
如果上面的sticky_session设为true时,建议此处也设为true,此参数表明如果集群中某台Tomcat服务器在多次请求没有响应后,是否将当前的请求,转发到其它Tomcat服务器上处理;此参数在sticky_session=true时,影响比较大,会导致转发到其它Tomcat服务器上的请求,找不到原来的session,所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常。
4.6、Apache服务器的配置文件httpd.conf中,默认有三个参数对性能的影响比较大,但根据不同的性能要求,参数的表现又不一样,太小并发提不上去,太大性能反而不好,建议根据项目的需要,实际做个测试,如并发要求800的话,可以设定为:
#一个连接的最大请求数量
MaxKeepAliveRequests 1000(值为0,则不限制数量)
#每个进程的线程数,最大1920。NT只启动父子两个进程,不能设置启动多个进程
ThreadsPerChild 1000(最大为1920)
#每个子进程能够处理的最大请求数
MaxRequestsPerChild 1000(值为0,则不限制数量)
这三个参数要根据不同的需求,不同的服务器进行调整。
5 测试
我搭建的两个worker分别是 worker1和worker2,所用的端口分别是8009和9009,下面在同 一台电脑里测试loadbalance是否成功(host=localhost)。
在进行以上实验时,两个Tomcat服务器都在同一台机器上运行,应该确保它们没有使用相同的端 口。在Tomcat的默认的server,xml中,一共配置了以下3个端口:
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Connector port="8080"/>
<Connector port="8009"/>
两个Tomcat服务器都在同一台机器上运行,则至少应该对其中一个Tomcat服务器的以上3个端口号 都进行修改。
此外,如果把Tomcat和其他HTTP服务器集成,Tomcat主要负责处理HTTP服务器转发过来的客户请求,通过不会直接接受HTTP请求。因此为了提高Tomcat的运行性能,可以关闭Tomcat的HTTP连接器,方法为在server.xml中把Tomcat的HTTPConnector的配置注释掉。
如果是接不同电脑上的tomcat,修改两个Tomcat服务器的JK端口,确保它们和workers.properties文件中的配置对应。此外,在使用了loadbalancer后,要求worker的名字和Tomcat的server.xml文件中的<Engine>元素的jvmRoute属性一致。
Tomcat 服务器1:
<Engine name="Catalina" defaultHost="localhost" debug="0" jmvRoute="worker1">
Tomcat 服务器2:
<Engine name="Catalina" defaultHost="localhost" debug="0" jmvRoute="worker2">
6 测试
至此,整个配置全部完成。
编写测试文件:建立一个目录test,里面新建一个test.jsp,内容为 <%System.out.println("===========================");%>
把test放到tomcat1,tomcat2的webapps下。在完成以上步骤后,分别启动两个Tomcat服务器和 Apache服务器,然后访问 http"//localhost/test/test.jsp,通过 http://localhost/test/test.jsp 访问,查看tomcat1的窗口,可以看到打印了一行"=========="再刷新一次,tomcat2也打印了 一条,再刷新,可以看到请求会被tomcat1,tomcat2轮流处理,实现了负载均衡。
由于此时由 localbalancer来调度Tomcat服务器,因此不能断定到底访问的是哪个Tomcat服务器的 index.jsp,这对于Web客户来说是透明的。
对于负责请求分发的Apache服务器,需要消耗大量的 CPU资源,因此如果在测试过程中出现一些 Service Temporarily Unavailable或erver has shut down the connection prematurely这样的错 误,这一般都是服务器配置不够好引起的,或者是Apache、Tomcat、及应用中的某些配置不够使 用,这时候就要考虑换更好的机器或优化应用中的配置。
7 常见问题
一、cannot connect to server:无法连接到服务器。这种情况是服务器的配置有问题,服务器无法承受过多的并发连接了,需要优化服务器的配置:
如操作系统采用更高版本,如windows 2003 server,
优化tomcat配置:maxThreads="500" minSpareThreads="400" maxSpareThreads="450"
但是tomcat 最多支持500个并发访问
优化apache配置:
ThreadsPerChild 1900
MaxRequestsPerChild 10000
二、 Action.c(10): Error -27791: Server has shut down the connection prematurely
HTTP Status-Code=503 (Service Temporarily Unavailable)
一般都是由于服务器配置不够好引起的,需要优化硬件和调整程序了。
三、无法处理请求:
当我们输入 ***.do 命令后,apache却返回错误信息,而连接tomcat却没有问题。原因是没有把.do 命令转发给tomcat处理。解决方法如下:
在apache配置文件中配置如下内容:
JkMount /*.jsp loadbalancer
JkMount /*.do loadbalancer
转载至 http://telexiang.blogbus.com/logs/22529232.html
1 为什么要做集群?
集群有别于分布式的解决方案,它采用的是每台服务器运行相同应用的策略,由负责平衡的服务器进行分流,这对提高整个系统的并发量及吞吐量是更有效的办法。而集群对请求的处理又有两种不同的方式:负载平衡、状态复制(即集群),状态复制需要在各服务器间复制应用状态,而负载平衡则不用,每台服务器都是独立的。实践证明,在各应用服务器之间不需要状态复制的情况下,负载平衡可以达到性能的线性增长及更高的并发需求。
2 集群与负载平衡的区别
因为是以Apache + Tomcat+ JK 的负载平衡配置作为介绍,下面重点了解就JK的工作方式
使用mod_jk默认的以轮循方式进行平衡负载,假设有四个服务器节点,有10个请求,则四个节点分别接受请求编号如下:
节点A 节点B 节点C 节点D
1 2 3 4
5 6 7 8
9 10
而集群方式也是使用这种方法进行平衡。Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。
集群不同于负载平衡的是,由于集群服务需要在处理请求之间不断地进行会话复制,复制后的会话将会慢慢变得庞大,因此它的资源占用率是非常高的,如果在并发量大的应用中,复制的会话大小会变得相当大,而使用的总内存更是会迅速升高。
但集群的会话复制,增加了系统的高可用性。由于在每台服务器都保存有用户的Session信息,如果服务器群中某台当机,应用可以自动切换到其它服务器上继续运行,而用户的信息不会丢失,这提高了应用的冗错性。
具体采用负载平衡还是集群,这要看应用的需求了。
3 软件下载
Tomcat: http://archive.apache.org/dist/tomcat/我使用的是tomcat-5;
Apache: http://archive.apache.org/dist/httpd/ 一般使用Apache2.2的版本
JK:mod_jk-1.2.x-httpd-2.2.x.so。jk是mod_jserv的替代者,它是Tomcat-Apache插件,为Apache和Tomcat的连接器,处理Tomcat和Apache之间的通信,在集群配置中充当负载均衡器的作用,当前的最新版本为1.2.26,不过不同JK版本与不同的Apache版本之间的搭配有一些差异,有的甚至配不起来。JK2是符合apache2.x系列的新品,但由于其配置太过麻烦,使用的人很少,很久以前已停止开发,所以我们采用了jk连接器,下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries
值得注意的是:jk的版本最好和当前的Apache匹配。
说了这么多了,可能下面才是大家要关注的重点。
4 配置Apache
4.1 为了简便 ,可以下载Apache的安装文件,安装很简单,一路Next
4.2 安装完毕后,将下载的mod_jk-1.2.x-httpd-2.2.x.so复制到Apache安装目录下的modules子目录中。
关于Apache的配置文件,可以在网上查看下子资料,如设置DocumentRoot(部署根目录),Listen(监听端口)等等,这里不再赘述。
4.3 然后进入Apache安装目录下的conf子目录中,打开httpd.conf配置文件,在最后插入以下一行:
Include conf/mod_jk.conf
这样便于管理和修改配置文件。
4.4 在conf子目录下,建立一个新的配置文件:mod_jk.conf,此文件为Apache加载连接器的配置文件,文件名可修改,但要与httpd.conf中Include的文件名一致,内容如下:
# Load mod_jk module. Specify the filename
# of the mod_jk lib you’ve downloaded and
# installed in the previous section
#加载mod_jk模块
LoadModule jk_module modules/mod_jk-1.2.x-httpd-2.2.x.so(x表示版本号)
# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
#JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 请求分发配置,可以配置多项
JkMount /* loadbalancer
JkMount /jkstatus status
!/*.gif loadbalancer
!/*.jpg loadbalancer
!/*.png loadbalancer
!/*.css loadbalancer
!/*.js loadbalancer
!/*.htm loadbalancer
!/*.html loadbalancer
#关掉主机Lookup,如果为on,很影响性能,可以有10多秒钟的延迟。
HostnameLookups Off
注:1、 蓝色加粗的两行是重点,第一句是Apache加载JK模块用的;第二句为配置哪些URL请求将由负载平衡器来处理。
2、/* 匹配所有的请求,都由 loadbalancer 这个 worker 进行处理,但是有几个例外,/jkstatus 请求由 status 这个 worker 处理。另外这个配置中每一行数据前面的感叹号表示接下来的 URI 不要由 JK 进行处理,也就是 Apache直接处理所有的图片、css 文件、js 文件以及静态 html 文本文件。
4.5 在conf子目录下,建立一个新的配置文件:workers.properties,此文件为负载平衡的配置文件,文件名不能修改,这是JK默认的名字,内容如下:
worker.list=loadbalancer
# Define the first node...
worker.worker1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.worker1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
worker.worker1.local_worker=1
worker.worker1.cachesize=1000
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=0
worker.worker1.reclycle_timeout=300
worker.worker1.retries=3
# Define the second node...
worker.worker2.port=9009 #ajp13 端口号,在tomcat下server.xml配置,默认8009,其他 主机可以用默认的端口
worker.worker2..host=localhost
worker.worker2..type=ajp13
worker.worker2..lbfactor=1
worker.worker2..local_worker=1
worker.worker2..cachesize=1000
worker.worker2..cache_timeout=600
worker.worker2..socket_keepalive=1
worker.worker2..socket_timeout=0
worker.worker2..reclycle_timeout=300
worker.worker2..retries=3
# Now we define the load-balancing behaviour
worker.loadbalancer.type=lb
worker.retries=3
worker.loadbalancer.balance_workers=worker1,worker2
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=true
注:以上定义了两个worker,一个为worker1,另一个为worker2,定义了一个负载平衡服务器loadbalancer,其中标蓝色的为重点配置项,相关的详细说明可以看官方的网站文档:http://tomcat.apache.org/connectors-doc/,其它节点的定义可以直接Copy,修改一下节点名及IP就好了。
A、worker.list=loadbalancer
设定工作的负载平衡器,各Tomcat节点不能加入此列表。
B、worker.worker1.lbfactor
负载平衡的权重比,如果此权重比越大,则分配到此节点的请求越多,如以上两个节点的权重比为1:1,则为平均分配。
C、worker.loadbalancer.balance_workers=worker1,worker2
指定此负载平衡器负责的Tomcat应用节点。
D、worker.loadbalancer.sticky_session=true
此处指定集群是否需要会话复制,如果设为true,则表明为会话粘性,不进行会话复制,当某用户的请求第一次分发到哪台Tomcat后,后继的请求会一直分发到此Tomcat服务器上处理;如果设为false,则表明需求会话复制。
E、worker.loadbalancer.sticky_session_force=true
如果上面的sticky_session设为true时,建议此处也设为true,此参数表明如果集群中某台Tomcat服务器在多次请求没有响应后,是否将当前的请求,转发到其它Tomcat服务器上处理;此参数在sticky_session=true时,影响比较大,会导致转发到其它Tomcat服务器上的请求,找不到原来的session,所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常。
4.6、Apache服务器的配置文件httpd.conf中,默认有三个参数对性能的影响比较大,但根据不同的性能要求,参数的表现又不一样,太小并发提不上去,太大性能反而不好,建议根据项目的需要,实际做个测试,如并发要求800的话,可以设定为:
#一个连接的最大请求数量
MaxKeepAliveRequests 1000(值为0,则不限制数量)
#每个进程的线程数,最大1920。NT只启动父子两个进程,不能设置启动多个进程
ThreadsPerChild 1000(最大为1920)
#每个子进程能够处理的最大请求数
MaxRequestsPerChild 1000(值为0,则不限制数量)
这三个参数要根据不同的需求,不同的服务器进行调整。
5 测试
我搭建的两个worker分别是 worker1和worker2,所用的端口分别是8009和9009,下面在同 一台电脑里测试loadbalance是否成功(host=localhost)。
在进行以上实验时,两个Tomcat服务器都在同一台机器上运行,应该确保它们没有使用相同的端 口。在Tomcat的默认的server,xml中,一共配置了以下3个端口:
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Connector port="8080"/>
<Connector port="8009"/>
两个Tomcat服务器都在同一台机器上运行,则至少应该对其中一个Tomcat服务器的以上3个端口号 都进行修改。
此外,如果把Tomcat和其他HTTP服务器集成,Tomcat主要负责处理HTTP服务器转发过来的客户请求,通过不会直接接受HTTP请求。因此为了提高Tomcat的运行性能,可以关闭Tomcat的HTTP连接器,方法为在server.xml中把Tomcat的HTTPConnector的配置注释掉。
如果是接不同电脑上的tomcat,修改两个Tomcat服务器的JK端口,确保它们和workers.properties文件中的配置对应。此外,在使用了loadbalancer后,要求worker的名字和Tomcat的server.xml文件中的<Engine>元素的jvmRoute属性一致。
Tomcat 服务器1:
<Engine name="Catalina" defaultHost="localhost" debug="0" jmvRoute="worker1">
Tomcat 服务器2:
<Engine name="Catalina" defaultHost="localhost" debug="0" jmvRoute="worker2">
6 测试
至此,整个配置全部完成。
编写测试文件:建立一个目录test,里面新建一个test.jsp,内容为 <%System.out.println("===========================");%>
把test放到tomcat1,tomcat2的webapps下。在完成以上步骤后,分别启动两个Tomcat服务器和 Apache服务器,然后访问 http"//localhost/test/test.jsp,通过 http://localhost/test/test.jsp 访问,查看tomcat1的窗口,可以看到打印了一行"=========="再刷新一次,tomcat2也打印了 一条,再刷新,可以看到请求会被tomcat1,tomcat2轮流处理,实现了负载均衡。
由于此时由 localbalancer来调度Tomcat服务器,因此不能断定到底访问的是哪个Tomcat服务器的 index.jsp,这对于Web客户来说是透明的。
对于负责请求分发的Apache服务器,需要消耗大量的 CPU资源,因此如果在测试过程中出现一些 Service Temporarily Unavailable或erver has shut down the connection prematurely这样的错 误,这一般都是服务器配置不够好引起的,或者是Apache、Tomcat、及应用中的某些配置不够使 用,这时候就要考虑换更好的机器或优化应用中的配置。
7 常见问题
一、cannot connect to server:无法连接到服务器。这种情况是服务器的配置有问题,服务器无法承受过多的并发连接了,需要优化服务器的配置:
如操作系统采用更高版本,如windows 2003 server,
优化tomcat配置:maxThreads="500" minSpareThreads="400" maxSpareThreads="450"
但是tomcat 最多支持500个并发访问
优化apache配置:
ThreadsPerChild 1900
MaxRequestsPerChild 10000
二、 Action.c(10): Error -27791: Server has shut down the connection prematurely
HTTP Status-Code=503 (Service Temporarily Unavailable)
一般都是由于服务器配置不够好引起的,需要优化硬件和调整程序了。
三、无法处理请求:
当我们输入 ***.do 命令后,apache却返回错误信息,而连接tomcat却没有问题。原因是没有把.do 命令转发给tomcat处理。解决方法如下:
在apache配置文件中配置如下内容:
JkMount /*.jsp loadbalancer
JkMount /*.do loadbalancer
转载至 http://telexiang.blogbus.com/logs/22529232.html
发表评论
-
数据库连接池工具的分析
2010-12-02 09:26 1150两种开源的数据库连接池 JDBC 的数据库连接池使用 jav ... -
常见的Exception in thread"main" java.lang.NoClassDefFoundError的几种解决方式
2010-09-17 11:38 31951、你的文件名对吗? JAVA要求你的文件和你的类名严格对应的 ... -
Struts2中Session的使用
2010-05-11 11:42 1233Struts2中关于Session的使用 在Struts2 ... -
java.util.ConcurrentModificationException 异常解决办法
2010-05-10 22:30 1271【错误原因】: 当某个线程对一个Collection / Ma ... -
Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别
2010-05-10 22:24 1021ArrayList和HashMap是异步的,Vector和Ha ... -
java配合tomcat实现动态2级域名效果
2010-04-20 15:25 1515开始之前,首先来认识下什么是2级域名? 一般我们注册一个域 ... -
JVM参数配置大全
2009-12-01 20:35 889堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数 ... -
常见问题解答
2009-09-20 00:42 902常见问题解答 Tomcat 启动后,出现一个登陆页面,但进 ... -
The method getJspApplicationContext(ServletContext
2009-06-08 10:56 1127今天开发遇到这个错误: The method getJspAp ... -
java 服务器端ip验证
2009-05-08 11:33 1644以下是验证方法: validateAnIpAddressWit ... -
常见异常记录
2009-04-24 09:31 1205一、我在开发中遇到这样的错误: javax.servlet ...
相关推荐
2. 安装mod_jk模块:Apache的mod_jk模块用于与Tomcat通信。可以下载对应版本的源码并编译安装,或者通过包管理器安装。比如在Ubuntu上,使用`apt-get install libapache2-mod-jk`。 二、Tomcat6.x的安装与配置 1. ...
### Apache动态域名+JK+Tomcat添加Tomcat系统服务集群详解 #### 一、Apache结合动态域名解析软件实现动态域名访问 本节主要讲解如何利用Apache结合动态域名解析软件(如gnhost)来实现动态域名访问。这一步骤是...
本资源包含了文章Apache2.2.x + Tomcat6.x + JK 集群配置,http://blog.csdn.net/qq396229783/article/details/74295797里面所用到的软件配置
11. **监控与管理**:对Apache+Tomcat+JK集群的监控非常重要,可以使用各种工具(如Nagios、Zabbix等)监控服务器状态、请求响应时间和负载情况,以便及时发现并解决问题。 总结来说,Apache+Tomcat+JK组合提供了一...
【描述】中的"apache的安装包和链接tomcat的插件,以及tomcat和apache的配置文件"表明,你需要配置Apache服务器(版本2.2.4)和mod_jk模块来与多个Tomcat实例(如tomcat3、tomcat2、tomcat1)进行通信。此外,还需要...
Apache 2.X 和 Tomcat 6.X/7.X 集群配置是一个常见的技术实践,用于提高Web应用程序的性能和可扩展性。Apache HTTP Server(通常称为Apache)是一款开源的HTTP服务器,而Tomcat则是一个开源的Java Servlet容器,主要...
Apache2.4、Tomcat8.0以及JK模块的结合使用是实现Web服务器与应用服务器之间负载均衡的一种常见方案。Apache作为前端服务器处理静态资源请求,而动态内容(如Java Web应用)则由Tomcat这样的Java应用服务器处理。JK...
Apache 2.2.22、JK模块与Tomcat 7是构建高性能Web服务集群的关键组件。Apache HTTP服务器作为前端负载均衡器,通过JK模块(也称为mod_jk)与后端的Tomcat应用服务器进行通信,实现动态内容的处理。这种架构允许你将...
Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...
【标题】"Tomcat+Apache+JK集群"指的是在Web服务器架构中,通过Apache HTTP Server与Tomcat应用服务器结合,并利用JK模块实现负载均衡和高可用性的集群部署方式。这种方式可以提升系统的性能和稳定性,应对高并发...
该资源为搭建apahce+tomcat集群所需要的控件,将该控件放到httpd目录下的modules下即可,剩余流程可以自己百度下很简单。(官方更新时间2020.3.20)
Apache、Tomcat以及mod_jk模块组成的集群架构是一种常见的高性能Web服务器和应用服务器组合,用于处理高并发和负载均衡的场景。在这个配置中,Apache作为前端服务器,通过mod_jk模块与后端的Tomcat应用服务器进行...
### Apache+mod_jk+Tomcat负载均衡配置详解 #### 一、背景介绍 随着互联网技术的迅猛发展,单一服务器已经难以满足日益增长的服务需求。负载均衡技术应运而生,成为提高服务可用性和扩展性的关键手段之一。本文将...
本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器、配置 mod_jk 模块、配置 Apache 和 Tomcat 服务器、配置负载均衡控制器等。 一、安装 Apache 服务器 首先,需要安装 Apache ...
Apache+JK+Tomcat_集群
Apache、mod_jk和Tomcat的组合是一种常见的Web服务器与应用服务器集成方案,用于构建高性能、高可用性的Java Web应用程序集群。在这个配置中,Apache作为前端的反向代理服务器,负责接收HTTP请求,并通过mod_jk模块...
Apache2.2是Apache HTTP Server的第2.2版本,提供了强大的静态内容服务和反向代理功能。它支持多种模块,通过这些模块可以扩展其功能,例如mod_jk模块,这正是实现Apache与Tomcat集成的关键。 Tomcat7则是Apache ...
Apache HTTP Server是一款广泛应用的开源Web服务器,而Apache的mod_jk模块则是用于连接Apache与Tomcat等基于Java的Servlet容器的工具,实现负载均衡和应用级集群。在本压缩包中,提供了Apache 2.2.4版本以及mod_jk...