`

Apache2.2.x+Tomcat6.x+jk2.x做集群配置

阅读更多

 

 

【Middleware】☆★之Apache2.2.x+Tomcat6.x+jk2.x做集群配置

 

 

         在实际项目开发中,当访问量过大,而客户又不愿意多花钱的情况下,为保证项目的稳定性,使用开源免费的中间件做集群是一个不错的选择。这就是我写本博的初衷!

 

         第一步:下载Apache http://httpd.apache.org/download.cgi#apache22如图所示:

 


 

      现在官方给的最新版本就是2.4.9,但是因为保证稳定性,我采用的是低一个的版本!

 

      第二步:下载mod_jk这个动态库是Apache的一个可选模块,用来搭建JVAV 平台的WEB 服务器时使用

            下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/


 

这里选择的是mod_jk-1.2.31-httpd-2.2.3.so,如果http服务器是Apache2.0.X版本,则必须选择mod_jk-1.2.31-httpd-2.0.52.so每个apache的版本,都会有一个特定的jk与之对应!OK?

 

第三步:安装下载好的二进制文件:

 

安装Apache也没有什么难度,就是在安装过程中要配置域名、网址和管理员邮箱之类的信息,这个信息完全可以按照提示,然后修改下填入即可,之后想修改的话直接到配置文件中改就行了。除了这个地方,还要保证机器上的80端口没有被其他程序(如iis)占用。至于安装路径,完全取决于个人爱好。其他的默认就行了。安装成功后,系统右下角的托盘区会有个图标,我们可以通过这个启动apache,如果那个小红点变成绿色,说明服务已经正常启动了(如果服务没有启动起来,说明安装过程中的配置有错误,建议卸载后重装)。如果按照默认,端口是80的话,那打开浏览器,输入:http://localhost/ ,应该可以看到 " It works “的字样。这样就可以进入下一步了。如图所示:


 

 

浏览器效果如图所示:
 

 

第四步:现在是核心配置了

在安装好的Apache中找到httpd.conf文件,如图:
 

 

在其最下面添加如下一行信息:
 

 

在conf文件夹中新建mod_jk.conf文件

配置如下:


 

找到modules文件夹,将下载好的mod_jk-1.2.31-httpd-2.2.3.so文件直接拷贝进去;这里面有好多的xxx.so;如图所示:
 

 

conf文件夹中新建workers.properties文件夹,配置如下:


 

 

 

注:我这里就用了两个Tomcat做示范,当然你用多个Tomcat也没问题,相应的在本机上的port端口不一致,就行,远程不用管,但是要把host配置成远程IP地址,就行了!

下面我们就开始配置Tomcat里面的server.xml文件了,里面有三个端口,分别是Server,Connector,Connector AJP,这三个端口号都要不一致,在这里就不叙述了下面可以下载server.xml文件例子。

 里面两个核心的配置如下:


 

注:一个是配置负载均衡,一个是配置session复制,保证整个服务器session值是一致的

 

配置到这里:基本完成,下面,我们就编写web项目进行测试:

在新建的web项目中,需要在web.xml文件中添加这条信息,distributable元素来告诉servlet/JSP容器,编写的应用将在分布式Web容器中部署!

 

ok,编写一个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>

 

现在将web应用部署到Tomcat1,Tomcat2中去,记住是加载之后的class文件,然后分别启动tomcat1,Tomcat2,启动顺序无所谓,最后启动Apache

在浏览器上输入:http://127.0.0.1/test/test2.jsp如下图:刷新,后台访问,Tomcat1,Tomcat2


 

我们发现sessionID是没有变化的,后台Tomcat在进行访问切换,

 我们继续输入数据看Tomcat打印的效果:

 

 

由此可见,我们的集群最核心的session复制做成功了,保证多个tomcat的session是一致的,基本完成集群配置,可以使用了,这也是我摸索而来,希望没有误导大家。

 

另外:为什么打印出来Server Info : null  也就是IP地址?这一点也是我郁闷的地方,有朋友看出问题,也可以留言,咱们一起交流!

 

附,为保证页面的图片大小统一,图片经过处理,所以分辨率有些不正常!呵呵....

 源码,配置文件,Apache,jk,下载地址:

 http://download.csdn.net/detail/u010506940/7525345

 

  • 大小: 296.5 KB
  • 大小: 299.8 KB
  • 大小: 163.4 KB
  • 大小: 49.5 KB
  • 大小: 152.3 KB
  • 大小: 30.2 KB
  • 大小: 79.5 KB
  • 大小: 276.6 KB
  • 大小: 242.4 KB
  • 大小: 362.5 KB
  • 大小: 198.6 KB
  • 大小: 36.8 KB
  • 大小: 40.5 KB
  • 大小: 409.2 KB
  • 大小: 95.6 KB
  • 大小: 288.1 KB
4
0
分享到:
评论
12 楼 一代宗师 2014-07-31  
liubey 写道
just a toy article

no zuo no die
11 楼 liubey 2014-07-29  
just a toy article
10 楼 低下头是人间 2014-07-03  
freezingsky 写道
低下头是人间 写道
一代宗师 写道
ray_linn 写道
这年头连tomcat 和 apache都算中间件了。。

Apache和Tomcat在web中理解为中间件有错吗?


apache是反向代理
tomcat只是个servlet容器,只实现了javaee规范中的jsp/servlet部分。ejb、jmx、jta等等一概欠奉。照比真正的javaee中间件差的还远

中间件的概念不止停留在java领域。看开点1


你说的对啊 但是无论是java领域内还是java领域外,都没有把apache和tomcat称为中间件的习惯
9 楼 freezingsky 2014-06-21  
低下头是人间 写道
一代宗师 写道
ray_linn 写道
这年头连tomcat 和 apache都算中间件了。。

Apache和Tomcat在web中理解为中间件有错吗?


apache是反向代理
tomcat只是个servlet容器,只实现了javaee规范中的jsp/servlet部分。ejb、jmx、jta等等一概欠奉。照比真正的javaee中间件差的还远

中间件的概念不止停留在java领域。看开点1
8 楼 低下头是人间 2014-06-21  
一代宗师 写道
ray_linn 写道
这年头连tomcat 和 apache都算中间件了。。

Apache和Tomcat在web中理解为中间件有错吗?


apache是反向代理
tomcat只是个servlet容器,只实现了javaee规范中的jsp/servlet部分。ejb、jmx、jta等等一概欠奉。照比真正的javaee中间件差的还远
7 楼 一代宗师 2014-06-20  
sgq0085 写道
  楼主辛苦了,贴了这么多图!

谁让咱是程序猿呢?呵呵...
6 楼 ping2010 2014-06-20  
ray_linn 写道
这年头连tomcat 和 apache都算中间件了。。

本来就是中间件!不用所谓的“这年头”!
5 楼 sgq0085 2014-06-20  
  楼主辛苦了,贴了这么多图!
4 楼 一代宗师 2014-06-20  
ray_linn 写道
这年头连tomcat 和 apache都算中间件了。。

Apache和Tomcat在web中理解为中间件有错吗?
3 楼 freezingsky 2014-06-20  
ray_linn 写道
这年头连tomcat 和 apache都算中间件了。。

这个得看你怎么理解了。。。
2 楼 sbpcx 2014-06-20  
谢谢分享。
1 楼 ray_linn 2014-06-20  
这年头连tomcat 和 apache都算中间件了。。

相关推荐

    Tomcat6.x+IIS6+jk2 整合

    软件环境:Window server 2003+ IIS6.0 + Tomcat6.0 + JK2 整了大半天,不过直得整合的好处就不说了 1.导入注册表 iis+tomcat.reg 文件说明 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\...

    Tomcat6.x+IIS6+jk2最新整合

    软件环境:Window server 2003+ IIS6.0 + Tomcat6.0 + JK2 整了大半天,不过直得整合的好处就不说了 1.导入注册表 iis+tomcat.reg 文件说明 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\...

    mod_jk2.so apache+tomcat 连接器

    apache+tomcat的连接器。 整合Tomcat5.0和Apache2.0的连接器、中间件。

    Apache2.4+Tomcat8.0集群安装--测试项目

    Apache2.4+Tomcat8.0集群安装--测试项目。集群配置地址为:

    Apache+Tomcat5.0实现集群

    Apache+Tomcat的集群配置涉及以下几个关键步骤: 1. **Apache服务器的安装与配置**: - 下载并安装Apache HTTP Server,如Apache2.2.15,根据操作系统选择相应的版本。 - 在安装过程中,设置网络域名、服务器名称...

    Apache+Tomcat集群和负载均衡及Session绑定

    【Apache+Tomcat 集群与负载均衡及Session绑定】是将多个Apache和Tomcat服务器配置成一个集群,以实现更高的服务可扩展性和可用性。集群的基本思想是通过将工作负载分散到多个服务器,避免单点故障,提高系统的整体...

    Apache+PHP+Tomcat+Mysql.pdf

    JK插件的配置涉及到httpd.conf的修改,以及jk2.properties或workers.properties文件的配置,指定Apache与Tomcat通信的方式(通常为AJP协议)。 最后,整合完后需要验证配置是否成功。可以通过浏览器访问部署在...

    Apache+Tomcat集群和负载均衡的资料

    ### Apache+Tomcat集群与负载均衡配置详解 #### 一、环境说明 为了实现Apache与Tomcat集群的负载均衡,我们需要准备以下环境: 1. **服务器配置**:四台服务器,其中一台安装Apache,三台安装Tomcat。 - Apache...

    如何利用Apache+Tomcat配置JSP开发环境.doc

    【Apache+Tomcat 配置JSP开发环境】 在Java Web开发中,Apache和Tomcat是常见的服务器组合,用于处理动态网页,特别是JSP(JavaServer Pages)的应用。Apache主要作为一个HTTP服务器,而Tomcat是一个Java Servlet...

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

    以下是对标题“tomcat+apache+jk集群和负载均衡”以及描述“tomcat+apache+jk集群和负载均衡”的深入解析,涵盖其原理、配置步骤以及关键参数调整。 ### 1. 理论基础 #### Tomcat Tomcat是Apache软件基金会下的一...

    jk2.properties+workers2.properties

    这两份配置文件是用于实现Apache与Tomcat之间的通信,也就是我们常说的Apache作为前端服务器,Tomcat作为后端应用服务器的“负载均衡”或“反向代理”设置。 首先,让我们详细了解`jk2.properties`文件。这个文件是...

    RedHatAS4下Apache2+MySQL+Php+Tomcat整合及虚拟主机配置

    安装 Tomcat 并配置其与 Apache2 之间的连接,这通常需要使用到 Jakarta Tomcat Connectors JK2 来实现。具体步骤包括: - **Tomcat 的安装**:解压安装包并设置环境变量。 - **JK Connector 的配置**:配置 Tomcat ...

    mod_jk2.so 整合Tomcat5.0和Apache2.0

    **整合Apache2.0与Tomcat5.0的步骤** 在Windows 2000或XP环境下,将Apache HTTP Server与Tomcat应用服务器进行整合,通常是为了实现更高性能的Web应用部署,因为Apache擅长处理静态内容,而Tomcat擅长处理Java ...

    安装Jdk+tomcat+apache+PHP+mysql(linux).pdf

    4. 配置Apache与Tomcat集成:使用mod_jk2.so作为连接器,需要编译并安装。配置Apache的`workers.properties`和`httpd.conf`文件,指定Tomcat的位置和工作线程。 5. PHP安装:解压`php-4.3.11.tar.gz`,编译并安装。...

    win2K+JDK1.4.1+Apache+2.0.44+Tomcat4.1.18完全解决方案

    ### Win2K+JDK1.4.1+Apache+2.0.44+Tomcat4.1.18 完全解决方案 #### 一、背景与目标 本方案旨在为开发人员提供一个在Windows 2000环境下集成JDK 1.4.1、Apache 2.0.44以及Tomcat 4.1.18的一站式解决方案。通过本...

    Apache2.4.41+Tomcat8.5.53(JK2-Apr)+jre1.8.rar

    windows操作系统环境运行,仅供大家学习使用,自带jdk1.8,实现session同步、负载均衡。 apahce服务:... tomcat1:http://loaclhost:9081/test2.jsp tomcat2:http://loaclhost:9082/test2.jsp

    Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册[定义].pdf

    【Linux平台Apache高可用双机集群Tomcat负载均衡集群配置】 在构建高可用性和负载均衡的Web服务环境中,Linux平台上的Apache HTTP Server和Tomcat应用服务器的组合是一种常见且高效的选择。本配置手册主要涉及如何...

Global site tag (gtag.js) - Google Analytics