`
chenhua_1984
  • 浏览: 1254511 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

apache2.2+tomcat6.0.18配置负载均衡

    博客分类:
  • java
阅读更多

<!-- [if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->

1) 下载 apache httpd apache tomcat ,并安装

2) 配置 apache

修改conf/httpd.conf 文件

去掉以下文本前的注释符# ,以便让 Apache 在启动时自动加载

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_http_module modules/mod_proxy_http.so

 

找到 Include conf/extra/httpd-vhosts.conf 并去掉前面的 #

 

打开conf/extra/httpd-vhosts.conf ,并添加以下内容

ProxyRequests Off

<proxy balancer://capaacluster>

    BalancerMember http://127.0.0.1:8080 loadfactor=1 route=jvm1

    BalancerMember http://127.0.0.1:9080 loadfactor=1 route=jvm2

ProxySet stickysession=JSESSIONID

ProxySet lbmethod=bybusyness/byrequests/ bytraffic

</proxy>

 

<VirtualHost *:80>

    ServerAdmin webmaster@dummy-host.capaa.com

    ServerName 172.16.5.22

    ServerAlias www.dummy-host.capaa.com

    ProxyPass / balancer://capaacluster/

    ProxyPassReverse / balancer://capaacluster/

    ErrorLog "logs/172.16.5.22-error.log"

#    CustomLog "logs/172.16.5.22-access.log" common

    CustomLog "logs/172.16.5.22-access.log" "%{JSESSIONID}C %{BALANCER_SESSION_STICKY}e %{BALANCER_SESSION_ROUTE}e %{BALANCER_WORKER_ROUTE}e %{BALANCER_ROUTE_CHANGED}e %{Set-Cookie}o"

</VirtualHost>

 

保存,apache 配置完毕。并重启 apache

 

3) 配置 tomcat

解压tomcat ,并复制一份,分别称为 t1, 2

分别修改tomcat1 tomcat2 server.xml ,使其监听的端口不冲突

 

找到<Server port="8005" shutdown="SHUTDOWN"> t1 不变,把 t2 改为 9005

 

配置Connector 的端口,找到 non-SSL HTTP/1.1 Connector ,即 tomcat 单独工作时的默认 Connector ,保留 t1 默认配置,在 8080 端口侦听,

而把t2 设置为在 9080 端口侦听

 

AJP 1.3 Connector <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

这是tomcat 接收从 Apache 过来的 ajp 连接请求时使用的端口,保留 t1 默认设置,把 t2 端口改为 9009

找到<Engine name="Catalina" defaultHost="localhost"> ,去掉这段或改为注释,把上方紧挨的 <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> 注释符去掉,对于 t2 ,去掉注释符并把 jvm1 改为 jvm2 。这里的 jvmRoute 对应 Apache httpd.conf BalancerMember 中配置的 route 参数

找到<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> ,打开注释,这里的配置是为了可以在集群中的所有 tomcat 节点间共享会话( Session

 

4) 测试 app

分别在t1 t2 webapp 目录下新增一个 test app ,并新增一个 test.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>"); 

  String dataName = request.getParameter("dataName");

  

  if (dataName != null && dataName.length() > 0) {

     String dataValue = request.getParameter("dataValue");

     session.setAttribute(dataName, dataValue);

  }  

  

  out.print("<b>Session 列表 </b>");  

  

  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="test.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>

 

修改此test app web.xml 文件,在 <web-app> 节点下加入 <distributable />

 

访问http://172.16.5.22/test/test.jsp  页面会显示相应的信息,是哪个 tomcat 处理了请求,当前 session 中的数据等

 

--------jessionid无效的问题

关键字: java apache load balance

这是 apache 部分的配置

 

<Proxy balancer://proxy>
       BalancerMember ajp://127.0.0.1:8009/  loadfactor=1 route=tomcat1
       BalancerMember ajp://127.0.0.1:8010/  loadfactor=1 route=tomcat2
</Proxy>

 <VirtualHost   *:80>
 ServerName  www.a.com
 ServerAlias    www.a.com
 ProxyPass / balancer://proxy/ stickysession=JSESSIONID nofailover=On lbmethod=bytraffic
        ProxyPassReverse / balancer://proxy/

  </VirtualHost> 

 

Server.xml分别是

 

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

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

 

我在两个的ROOT 文件夹下都放一个  test.jsp  分别输出不同的标识 .

但刷新的时候, 就会发现 apache 把请求分别发给  tomcat1 tomcat2. stickysession 失败了 . . 这是为什么呢 ???  哪位帮忙看看 ...

 

===========================================

以下为正确配置

 

 <VirtualHost   *:80>
 
 ServerName  www.a.com
 ServerAlias    www.a.com
 ProxyPass / balancer://proxy/ stickysession=JSESSIONID
 ProxyPassReverse / balancer://proxy/

 <Proxy balancer://proxy>
        BalancerMember  http://192.168.1.192:8080/   loadfactor=1 route=tomcat1
        BalancerMember  http://192.168.1.192:8081/   loadfactor=2 route=tomcat2
 </Proxy>

 </VirtualHost> 

 

分享到:
评论

相关推荐

    Apache2.2 tomcat-6.0.18负载均衡与集群

    总结起来,"Apache2.2 tomcat-6.0.18负载均衡与集群"是一个复杂但关键的架构,涉及到Apache的mod_proxy和mod_jk模块,以及Tomcat的集群配置。这个主题涵盖了如何利用这些工具和技术创建一个高可用、高性能的Web服务...

    SVN1.4.6 + apache2.2.11 + tomcat 6.0.18 集成配置

    SVN1.4.6 + apache2.2.11 + tomcat 6.0.18 集成配置SVN1.4.6 + apache2.2.11 + tomcat 6.0.18 集成配置

    APACHE 2.2.9+TOMCAT6.0.18配置

    APACHE 2.2.9+TOMCAT6.0.18配置 APACHE 2.2.9+TOMCAT6.0.18配置

    APACHE 2.2.9+TOMCAT6.0.18配置负载均衡

    ### APACHE 2.2.9+TOMCAT6.0.18 配置负载均衡 #### 目标 本教程旨在通过使用 Apache 2.2.9 和 Tomcat 6.0.18 来搭建一个可以实际部署运行的 Web 网站。具体目标包括: 1. **实现 Apache 作为 HTTP 服务器**:...

    apache-tomcat-6.0.18

    在实际应用中,Tomcat常与其他软件集成,如Apache HTTP Server(通常称为Apache,非此处的标签“阿帕奇”)进行负载均衡和反向代理,提供更高的性能和安全性。Apache HTTP Server是一个流行的HTTP服务器,负责处理...

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

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

    APACHE +TOMCAT配置负载均衡

    Apache + Tomcat 配置负载均衡是Web服务器和应用程序服务器协同工作的典型应用场景,旨在提高网站的可用性和性能。在这个配置中,Apache作为前端HTTP服务器,它接收来自客户端的请求并根据预设策略将这些请求分发给...

    Apache 2+Tomcat 6负载均衡与集群配置及性能测试

    Apache 2+Tomcat 6 负载均衡与集群配置是提高Web应用程序可用性和性能的关键技术。通过负载均衡,可以将来自用户的请求均匀分配到多个服务器,避免单点故障,提升系统的整体处理能力。而Tomcat集群则使得多个Tomcat...

    apache-tomcat-6.0.18.zip

    8. **核心组件**:`apache-tomcat-6.0.18`目录下包含了Tomcat的主要组件,如`bin`目录下的可执行文件用于启动和停止服务器,`conf`目录存放配置文件,`webapps`目录用于放置Web应用程序,`lib`目录包含运行所需的...

    apache-tomcat-6.0.18.rar_apache tomcat_tomact_tomcat 6.0.18

    这个"apache-tomcat-6.0.18.rar"压缩包包含了Apache Tomcat的6.0.18版本,这是一个较早但仍然被一些用户使用的稳定版本。 在Java服务器领域,Tomcat因其轻量级、高效且易于配置的特点而广受欢迎。它实现了Sun ...

    apache-tomcat-6.0.18免安装

    虽然Tomcat 6.0.18相对较旧,但仍然支持基本的集群配置,通过`cluster`元素在`server.xml`中设置,可以实现负载均衡和故障转移。 总之,Apache Tomcat 6.0.18免安装版提供了一个轻量级、便捷的Java Web服务器解决...

    apache-tomcat-6.0.18.rar

    - **集群和负载均衡**:高级配置可实现Tomcat服务器的集群,通过负载均衡分发请求到多个服务器。 尽管Tomcat 6.0.18是一个较旧的版本,但其基本原理和配置方法对于理解现代的Tomcat版本仍然非常有帮助。随着技术的...

    apache-tomcat-6.0.18.tar.gz

    Apache Tomcat 6.0.18 是一个广泛使用的开源软件,它是一个实现了Java Servlet和JavaServer Pages(JSP)规范的应用服务器,主要用于部署和运行Java Web应用程序。这个版本是Tomcat 6系列的一个特定发布,它在当时...

    apache-tomcat-6.0.18.zip下载

    在使用Apache Tomcat 6.0.18时,你需要根据需求修改`conf`目录下的配置文件,例如设置服务器端口、调整内存分配等。同时,为了在MyEclipse中配置Tomcat,你需要在IDE的服务器视图中添加新的服务器实例,选择Apache ...

    tomcat6.0.18 解压缩版

    10. **集群和负载均衡**: 对于高可用性和负载均衡的需求,Tomcat可以通过配置多个实例并结合反向代理或负载均衡器来实现。虽然Tomcat6.0.18的集群支持相对有限,但可以通过一些高级技术实现。 综上所述,"Tomcat...

Global site tag (gtag.js) - Google Analytics