`

Apache HTTP Server + Tomcat的集群配置

 
阅读更多

如何应对大量请求所造成的服务器性能下降、崩溃

  1. 应用逻辑优化
  2. 服务器优化
    1. 增强服务器处理能力
    2. 增加服务器
      1. 增加逻辑应用服务器(纵向扩展)
      2. 增加硬件服务器(水平扩展)

此处不打算介绍各种各种方式的优劣,下文展示的是如何纵向扩展,搭建Tomcat集群。

Tomcat集群访问示意图:

搭建Apache HTTP Server

我的建议是最好在虚拟机里面做,并且在安装Apache HTTP Server之前关闭IIS服务和IE。

安装完成之后,在此处启动HTTP Server。浏览器中输入http://localhost,如果有网页显示,则安装成功。

  • 下载Tomcat7并解压到HTTP Server的统计目录中,重命名为tomcat7_1.

    启动Tomcat,ie中输入http://localhost:8080,看到管理页面即为安装成功。

出击吧,喵咪们!~~~

进入到d:/apache/conf下,打开httpd.conf,找到DocumentRoot,修改为d:/webapps

继续找到

<Directory />

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

</Directory>

这一节点,修改为:

<Directory />

#Options FollowSymLinks

Options none

AllowOverride None

Order deny,allow

Allow from all

</Directory>

继续找到<Directory "D:/apache/htdocs">,修改为<Directory "D:/webapps">.

继续找到Options Indexes FollowSymLinks,修改为:Options none

然后在webapps文件夹下新建一个index.html,内容随便,重启apache服务,刷新http://localhost,应当显示为刚才的html页面。

  • 下载mod_jk-1.2.31-httpd-2.2.3.so并复制到D:\apache\modules。
  • 在httpd.conf文件最后一行追加

    include conf/jk_mod.conf

  • 在conf文件夹下新建jk_mod.conf文件,加入如下内容(注意注释换行问题):

    #加载apache-tomcate模块

    LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so

    #集群相关参数的属性文件

    JkWorkersFile conf/workers.properties

    #日志相关配置

    JkLogFile logs/mod_jk.log

    JkRequestLogFormat "%w %V %T"

    JkLogLevel info

    #将后缀为X的请求交由controller处理

    JkMount /*.jsp controller

    jkMount /*.do controller

  • 在conf文件夹下新建workers.properites文件,加入如下配置:

    worker.controller.balance_workers=tomcat7_1,tomcat7_2

    #-------controller---------------

    worker.list=controller

    worker.controller.type=lb

    worker.controller.sticky_session=false

    worker.controller.sticky_session_force=1

    #tomcat1

    worker.tomcat7_1.port=8009

    worker.tomcat7_1.host=localhost

    worker.tomcat7_1.reference=worker.template

    worker.tomcat7_1.lbfactor=1

    #tomcat2

    worker.tomcat7_2.port=9009

    worker.tomcat7_2.host=localhost

    worker.tomcat7_2.reference=worker.template

    worker.tomcat7_2.lbfactor=1

    #========template========

    worker.template.type=ajp13

  • 修改tomcat7_1/conf/server.xml文件。

找到:

<Engine name="Catalina" defaultHost="localhost">

改为:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat7_1">

将:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

的注释去掉,使其生效。

找到:

appBase="webapps"

改为:

appBase="d:/webapps"

复制此tomcat的webapps文件夹到d:webapps。此时重启tomcat,还是能够看到之前的管理页面。

  • 复制tomcat服务器

复制tomcat7_1到同级目录,改名为tomcat7_2,修改tomcat7_2的server.xml文件,修改三个个以8开头的端口:8005->9005;8080->9080; 8009->9009

同时将jvmRoute="tomcat7_1"改为:jvmRoute="tomcat7_2"

此时启动tomcat7_2,访问http://localhost:9080,即可看到tomcat7_2 的管理页面。

  • 部署一个测试过程

    这个工程最起码需要满足两个要求:

    • 有一定数量的(最起码一个)HTML静态文件,apache会解析他,不经过应用服务器(tomcat)
    • 有一定数量的"动"态文件,apache解析不了,交由app server处理。其中必须有对session的操作,以验证集群的session共享正确性。
    • 在web.xml下的web-app节点下添加<distributable/>

    我这里有一个及其简单的工程。复制到d:/webapps后,启动tomcat7_1和tomcat7_2,分别输入:

    http://localhost:8080/test/index.jsp

    http://localhost:9080/test/index.jsp

应该都可以访问到。

此时,所有配置完毕。

测试session是否被共享

启动两个tomcat,重启apache服务。访问http://localhost/test/index.jsp,每次刷新,你将看见两个tomcat"轮流"处理请求,而页面内session的值则是连续的,说明session被共享。

配置失败?

有一些原因会导致配置失败,这些永远很难在一篇文章内描述清楚,所以,遇到问题,及时google(其实我喜欢用百度,只是说google比较洋气点儿,呵呵)是必要的。

这里是一个直接就可以用例子

这是一个严重配置文件正确性的工具:

分享到:
评论

相关推荐

    apache+tomcat集群配置

    Apache + Tomcat 集群配置 Apache + Tomcat 集群配置是指将 Apache 服务器与 Tomcat 服务器集成,以提高服务器的性能和可扩展性。本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器...

    Apache+Tomcat服务器集群配置详细步骤

    #### 三、Apache+Tomcat集群配置步骤 **步骤1:环境准备** - 安装Apache。 - 安装两个Tomcat实例,并在各自的`webapps`目录下部署测试项目。 **步骤2:JK插件配置** - 将`mod_jk.so`复制到`&lt;apache_home&gt;/...

    apache+tomcat+jk 均衡负载和集群

    6. **安装与配置**:配置Apache+Tomcat+JK集群通常包括以下步骤: - 安装Apache服务器并启用JK模块。 - 安装Tomcat服务器并部署应用。 - 配置JK模块的worker.properties文件,定义每个Tomcat服务器的工作节点。 ...

    apache+tomcat集群配置文件和文档

    这份"apache+tomcat集群配置文件和文档"将涵盖以上所有要点,指导你逐步配置和测试Apache+Tomcat集群。按照文档操作,你将能够构建出一个高效且稳定的Web服务环境。在实际操作中,务必根据你的硬件资源和具体需求...

    Apache+Tomcat集群

    Apache作为前端服务器,负责接收客户端的HTTP请求,并根据配置的负载均衡策略将这些请求转发给后端的多个Tomcat实例(即Tomcat集群)来处理。这种架构可以有效分散负载,防止单一服务器过载,同时提供了冗余,当某个...

    apache+tomcat集群配置64位windows系统

    **二、Tomcat集群配置** 1. **安装Tomcat**:下载并安装两个Tomcat实例,分别监听不同的端口(如上述8080和8081)。 2. **复制共享session配置**:由于集群中的各个Tomcat实例需要共享session,所以需要在每个...

    Window下Apache负载均衡+Tomcat集群

    1. **安装Tomcat**:解压缩四个Tomcat实例到指定目录,例如`D:\Tomcat集群服务器\tomcat6.0`, `tomcat6.01`, `tomcat6.02`, `tomcat6.03`。 2. **配置AJP连接器**:在每个Tomcat的`server.xml`文件中,添加AJP监听...

    apache+tomcat集群配置文件和文档说明

    总结,"apache+tomcat集群配置文件和文档说明"涵盖了Apache和Tomcat的集群配置,涉及Apache的负载均衡配置、Tomcat的session复制和集群通信设置,以及Java环境的准备。通过这些配置,可以构建一个高可用的Web服务...

    apache+tomcat+jk集群

    在“apache+tomcat+jk集群”这一主题中,我们将深入探讨如何通过Apache、Tomcat以及JK模块的结合,实现负载均衡和集群配置,从而提升系统的性能和稳定性。 ### Apache的角色 Apache是一款广泛使用的开源Web服务器...

    apache_server+Tomcat7集群负载均衡session共享

    3. **Tomcat7集群配置**:在Tomcat的server.xml文件中,需要开启集群支持,并配置集群广播机制,如基于UDP的`org.apache.catalina.ha.tcp.SimpleTcpCluster`。每个Tomcat实例都需要知道其他实例的存在,并能接收到...

    Apache2.4+Tomcat7服务器集群配置及软件.rar

    本资料包“Apache2.4+Tomcat7服务器集群配置及软件.rar”提供了详细的步骤和实例,帮助读者掌握如何配置这种服务器集群。 Apache2.4是Apache HTTP Server的最新版本之一,它提供了更好的性能、安全性以及更多的模块...

    apache2.4+tomcat7集群

    Apache 2.4 和 Tomcat 7 集群配置是一种常见的Web服务器和应用服务器部署方式,用于提高网站和应用程序的可伸缩性和高可用性。在Windows 7环境下搭建这样的集群,我们可以实现负载均衡、故障转移等功能,以确保服务...

Global site tag (gtag.js) - Google Analytics