`
ibadboy
  • 浏览: 84394 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

Apache2+Tomcat7+mod_jk2.2.3集群负载均衡配置(目前最强悍)

阅读更多

 

前言

 

    目前公司项目升级,一方面对代码进行重构,另外一方面优化服务器性能。下面就着重分享下Apache的集群和负载均衡配置。虽然网上相关的文章数不胜数,不过感觉写的都不是很到位。我这篇文章主要是根据我在实际项目配置的过程中一点点的记录下来的,希望能够帮到需要的人,从而人少走点弯路。。。

 

准备环境

 

1. Apache

 

  下载最新的apache版本2.2.18,官方下载地址为http://httpd.apache.org/download.cgi#apache22.

 

2. Tomcat

 

   下载最新tomcat版本7.0.14,官方下载地址为http://tomcat.apache.org/download-70.cgi.

 

3.Tomcat Connectors (mod_jk)

 

    下载最新版本JK1.2.31,官方下载地址为http://tomcat.apache.org/download-connectors.cgi.

 

应用配置

 

1.Apache配置

 

   安装Apache程序到指定目录,假设我们安装到d:/Apache2 ,找到该目录下面conf/httpd.conf .主要修改过程包括如下几个步骤:

  • 查找DocumentRoot 关键字,修改默认的应用目录d:/Apache2/htdocsd:/wwwroot ,主要方便以后发布程序。
  • 查找<Directory "D:/Apache2/htdocs"> 修改为<Directory "D:/wwwroot">
  • 查找DirectoryIndex 关键字,在末尾添加index.jsp index.php etc.

  重启apache服务,创建内容It works!到index.html中并且拷贝到wwwroot目录下,然后在游览器访问http://localhost,如果看到It works!字样,则说明apache配置成功。

 

2.JK配置

 

  • 在d:\apache2目录下面创建conf.d 文件夹,主要用来存放集群需要的配置文件。
  • 创建mod_jk.conf存放到d:\apache2\conf.d中。具体配置内容如下:

 

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

# 与tomcat整合实现负载均衡配置
JkWorkersFile conf.d/workers.properties
# 访问url地址规则定义和过滤
JkMountFile conf.d/uriworkermap.properties

JkShmFile logs/mod_jk.shm

# 记录负载均衡日志
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 indicates to send SSK KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
 
# JkRequestLogFormat
JkRequestLogFormat "%w %V %T"
 
#对tomcat项目别名,此处一定要配置,否则你项目的静态文件无法调用
Alias /OneByOne /opt/wwwroot/webapps/OneByOne
#设置tomcat发布文件的权限,必须配置,否则报403错误
<Directory "/opt/wwwroot/webapps">
#Options FollowSymLinks  
Options Indexes FollowSymLinks  
#Options Indexes MultiViews  
AllowOverride None  
Order deny,allow                            
#Deny from all                        
allow from all
Satisfy all  
</Directory>
# 定义需要由tomcat解析的访问url
JkMount /* controller  
# 排除不需要由tomcat解析的地址,比如下面定义的dbm是php工程,所以访问目录就需要排除
JkUnMount /dbm* controller  
 
  • 新建并且编辑workers.properties文件,负载均衡配置如下所示:

 

# 定义worker,此处的list名称必须和mod_jk.conf文件中的controller名称一致
worker.list=controller 
# Define Node1
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
worker.tomcat1.connection_pool_size=10
worker.tomcat1.connection_pool_timeout=600
worker.tomcat1.socket_connect_timeout=300
 
# Define Node2
worker.tomcat2.port=9009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
worker.tomcat2.connection_pool_size=10
worker.tomcat2.connection_pool_timeout=600
worker.tomcat2.socket_connect_timeout=300
 
# Load-balancing behaviour
worker.controller.type=lb
worker.controller.balance_workers=tomcat1, tomcat2
worker.controller.sticky_session=0
worker.controller.sticky_session_force=1
#loadbalancer 
***************************************************************************************/
 
  • 新建并编辑uriworkermap.properties文件,具体的配置代码如下:

 

/*=controller
!/*.html=controller
!/*.css=controller
!/*.gif=controller
!/*.jpg=controller
!/*.png=controller
!/*.js=controller

 

     上面都配置好了以后,别忘了添加Include conf.d/*.conf 到apache的httpd.conf配置文件中。目的让apache能够找到mod_jk.conf配置文件。

 

3.tomcat配置

 

     这边我配置了两个tomcat,将下载的tomcat文件解压到d:\tomcat1和d:\tomcat2目录下,然后分别修改所在目录下面server.xml配置文件,tomcat1修改的截图如下:

 

   

 

 

tomcat2中的server.xml配置截图如下:

 


上面两个配置文件中的节点connector中的属性port和jvmRouter值需要和worker.properties中的设定一致。这个就不一一阐述了,相信搞程序的一看就明白。

 

测试集群

 

   1. 创建test项目,这个我也就直接拷贝网上的例子。然后将项目拷贝到d:\webapps目录下面。

    index.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,然后重启apache,直接在浏览器访问http://localhost/test。

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 151.8 KB
  • 大小: 159.9 KB
分享到:
评论
2 楼 你有罪 2015-07-29  
session复制呢??
1 楼 successfulroof 2011-11-16  
这么配置下来,apache2.2貌似启动不了
我用的是apache2.2 mod_jk_1.23的
tomcat用的6.0
貌似以读取mod_jk.conf 文件就出现了"requested operation failed"的error是什么情况

相关推荐

    Apache+mod_jk+Tomcat负载均衡配置

    ### Apache+mod_jk+Tomcat负载均衡配置详解 #### 一、背景介绍 随着互联网技术的迅猛发展,单一服务器已经难以满足日益增长的服务需求。负载均衡技术应运而生,成为提高服务可用性和扩展性的关键手段之一。本文将...

    apache2.2.25_And_mod_jk2.2.3

    mod_jk是Apache的模块之一,是Apache与Tomcat之间的连接器,用于实现Apache与Tomcat的负载均衡和通信。mod_jk 2.2.3是专门为Apache 2.2系列设计的,它允许Apache将HTTP请求转发到Tomcat实例,以处理Java Servlet和...

    mod_jk-1.2.31-httpd-2.2.3

    通过配置`mod_jk.conf`,可以定义多个Tomcat实例,形成一个集群,实现负载均衡。当一个Tomcat实例因负载过高或出现故障时,`mod_jk`可以自动将请求路由到其他健康的实例,保证服务的连续性和可用性。此外,`mod_jk`...

    mod_jk-httpd-2.2.3

    Apache mod_jk是Apache和Tomcat之间的重要桥梁,通过它,我们可以实现高效的负载均衡、故障转移和会话管理,提升Web应用的整体性能。正确选择和配置mod_jk版本对于构建稳定、可扩展的Web环境至关重要。了解其功能、...

    apache2.2+tomcat6集群配置

    Apache2.2与Tomcat6集群配置是一种常见的Web服务架构,用于提高网站的可用性和可扩展性。在Windows环境下,这种配置可以实现负载均衡,确保即使单个服务器出现故障,整个系统仍然能继续运行,同时分散请求以降低单一...

    mod_jk-1.2.31-httpd-2.2.3.so

    总结来说,"mod_jk-1.2.31-httpd-2.2.3.so"是Apache服务器与Java应用服务器间的桥梁,通过集群配置,可以提升网站性能,实现高可用性和负载均衡。配置过程涉及安装Apache模块,编辑配置文件以及可能的SSL配置,以...

    apache 2.2.15 +tomcat 6.0 同一台机器集群

    本教程将探讨如何在一台机器上配置Apache 2.2.15与Tomcat 6.0的集群,以实现负载均衡和提高服务的可用性。 首先,Apache 2.2.15是Apache HTTP Server的一个版本,它提供了强大的静态内容处理能力和与其他服务器的...

    apahe_httpd2.2.25+mod_jk-1.2.31-httpd-2.2.3文件(32位)

    2. 将mod_jk.so(在Unix/Linux)或mod_jk.dll(在Windows)加载到Apache配置中。 3. 配置mod_jk的worker.properties文件,定义Tomcat实例(workers)及其连接参数。 4. 在Tomcat服务器上配置server.xml以识别mod_jk...

    测试通过的apache2.17_tomcat6集群

    apache2.2+tomcat6集群已经配置好,tomcat优化过,在实际项目发布中直接将项目复制到集群中的所有tomcat的webapps中即可, 此配置中包含是3个tomcat集群, 安装步骤大概如下: 1:安装httpd-2.2.17-win32-x86-no_ssl...

    httpd-2.2.17-win32-x86-no_ssl.msi + mod_jk-1.2.31-httpd-2.2.3.so

    安装`httpd-2.2.17-win32-x86-no_ssl.msi`后,你需要在Apache的配置中启用`mod_jk`,并正确配置`mod_jk.conf`和`workers.properties`,以利用`mod_jk-1.2.31-httpd-2.2.3.so`进行负载均衡。确保所有服务器都能正常...

    apache+tomcat集群配置

    总结来说,Apache 和 Tomcat 集群配置的关键在于正确配置 Apache 的 mod_jk 模块、工作线程和负载均衡策略,以及 Tomcat 的 AJP 连接器和会话复制设置。这种配置能够提供更强大的服务能力和故障转移功能,确保在高...

    Apache Tomcat 负载均衡

    在Apache Tomcat中,负载均衡可以通过集群配置实现,即通过设置多个Tomcat实例来分担服务请求,确保即使某个节点出现故障,其他节点仍能继续提供服务。 ### 二、配置Apache Tomcat负载均衡 #### 1. 配置`server....

    Apache与Tomcat集群负载均衡(一键打包解压即可运行)

    Tomcat和Apache集群和负载均衡配置 Tomcat版本:apache-tomcat-7.0.26 Apache版本:Apache2.2.25 jre版本:1.6.0_26 集群和负载均衡配置已整好,解压后,只要点击run.bat一键启动,即可看到集群效果。 运行成功后,...

    Apache,Tomcat集群和负载均衡

    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负载...

Global site tag (gtag.js) - Google Analytics