`
lion222
  • 浏览: 125089 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

通过ajp_proxy配置Apache+Tomcat集成

阅读更多
一、安装Apache
下载、解压并安装Apache(我下载的是httpd-2.2.14.tar.gz),注意需安装代理所需的modules.
#tar zxvf httpd-2.2.14.tar.gz 
#cd httpd-2.2.14
#./configure --prefix=/apps/cluster/apache --enable-mods-shared=proxy
#make
#make install
二、安装tomcat
下载、解压并安装tomcat(我下载的是apache-tomcat-5.5.28.tar.gz),注意安装前需先设置好Java环境。
三、配置集群.
注意如果在lunix下需要开通组播,命令如下:
开通:#route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
查看: #route -e
查看网卡: #ifconfig -a
针对 session的处理,tomcat的集群两种方式:sticky模式(黏性会话模式);session复制模式。
sticky模式:同一个用户的访问请求都被派送到同一个tomcat实例上。
好处:无须在多台服务器之间实现session共享了
缺点:不能实现 failureover了,一但用户访问的机器挂掉,那么其session就会丢失。
session复制模式:同一用户的SESSION会被拷贝到各TOMCAT实例上。
好处:解决failureover的问题,即使某一台web服务器挂掉了,用户请求会被负载到其他web服务器上,且session也被复制了,对用户而言就像是在同一台机器上操作一样。
缺点:session复制需要系统资源和网络的开销,尤其是当web服务器多的时候或session里存储的数据量大的时候,这点将会比较的明显(未做极限测试)。
针对这两种方式的优缺点,可以将两种模式结合的方式来达到更好的效果,那就是 sticky+session复制模式。用户的请求按照 sticky方式被分发到同一个web服务器上,同时tomcat在后台做异步复制(非同步)session到其他web服务器,这样我们使用 sticky的简便性,同时又有了一定的容错能力。
 
1、在每个tomcat目录下的conf\Catalina\localhost目录下建立一个ROOT.xml
<?xml version="1.0" encoding="UTF-8"?> 
<Context docBase="/apps/cluster/gsp" privileged="true" antiResourceLocking="false" antiJARLocking="false" distributable="true"> 
</Context>
2、修改各TOMCAT端口,避免在同一机器上启动TOMCAT时造成访问端口冲突,不同机器可能不修改。
3、配置server.xml文件,打开并找到配置Engine的位置,加入 jvmRoute="tomcat1",表示这个tomcat的实例名称为tomcat1。修改前后的对比如下:
修改前:<Engine name="Catalina" defaultHost="localhost">
修改后:<Engine name="Catalina" defaultHost="localhost" jvmRoute="node1">
各个TOMCAT的jvmRoute="tomcat1"需要配置成不一样的值
找到Cluster标签,并取消它的注释即可,无须做任何修改。注意修改Cluster标签下的tcpListenPort端口号,避免端口冲突。
四、配置apache
编辑apache配置文件 #vi /usr/apache/conf/httpd.conf,在最后添加以下内容
ProxyRequests Off
ProxyPass / balancer://gspcluster/ stickysession=JSESSIONID
<Proxy balancer://gspcluster/>
BalancerMember ajp://192.168.0.143:18009  route=tomcat1 loadfactor=50
BalancerMember ajp://192.168.0.143:28009  route=tomcat2 loadfactor=50
BalancerMember ajp://192.168.0.143:38009  route=tomcat3 loadfactor=50
</Proxy>
五、修改web.xml文件 添加元素<distributable/>
六、测试页面
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<%out.println("<br/>ID " + session.getId()+"");
  // 如果有新的 Session 属性设置
  String dataName = request.getParameter("dataName");
  session.setAttribute("sessiontest", "test session!!!");
  out.println( "sessiontest" + " = " + String.valueOf(session.getAttribute("sessiontest"))+"<br/>");
 
  if (dataName != null && dataName.length() > 0) {
     String dataValue = request.getParameter("dataValue");
     session.setAttribute(dataName, dataValue);
  }
  out.print("<br/>Session 列表");
  Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
     String name = (String)e.nextElement();
     String value = session.getAttribute(name).toString();
     out.println( name + " = " + value+"");
     System.out.println( name + " = " + value);
   }
 
 
%>
 
<FORM action=test.jsp method=post>
名称:<INPUT name=dataName></INPUT>
值:<INPUT name=dataValue></INPUT>
<INPUT type=submit value=提交查询内容></INPUT>
</FORM>
 
1、如果同一SESSION指向同一TOMCAT则说明sticky模式成功
2、提交内容,停掉已访问的TOMCAT,再刷新页面,若转到另一TOMCAT,且提交值仍存在则说session复制模式成功
 
 
分享到:
评论

相关推荐

    apache +tomcat集群 ajp_proxy实际操作

    ### Apache + Tomcat集群与AJP Proxy实际操作详解 #### Apache服务器安装与配置 ...上述配置步骤涵盖了从Apache安装、配置到AJP Proxy与Tomcat集群的具体实施细节,为企业级项目提供了坚实的基础设施支持。

    APACHE(proxy_ajp_stickysession) + TOMCAT实现高可用网站或管理系统集群

    标题中的“APACHE(proxy_ajp_stickysession) + TOMCAT实现高可用网站或管理系统集群”是指通过Apache HTTP服务器的Proxy_AJP模块配合Tomcat的stickysession特性,来构建一个高可用的Web服务集群。这样的集群可以提高...

    apache+tomcat整合配置

    整合Apache和Tomcat时,确保两者之间的通信是加密的,可以通过配置Apache的SSL支持并使用AJP over SSL。同时,对Apache和Tomcat进行安全配置,如限制不必要的网络访问,避免敏感信息泄露。 7. **负载均衡与集群** ...

    win2003下 apache+tomcat集成

    4. **配置Tomcat的连接器**:在Tomcat的`server.xml`配置文件中,添加或修改`&lt;Connector&gt;`元素,以允许Apache通过AJP协议(或HTTP协议)与Tomcat通信。例如,使用AJP协议: ``` &lt;Connector port="8009" protocol="...

    Apache+tomcat实现负载均衡

    最后,为了更好地理解和实践这个配置,你可以参考提供的博客链接(由于实际链接无法在这里显示,你可能需要自行查找),以及查阅Apache和Tomcat的官方文档,以获取最新的配置信息和最佳实践。在实际部署过程中,安全...

    Apache+Tomcat整合

    Apache 与 Tomcat 整合采用 proxy 方式,需要在 Apache 的配置文件 `httpd.conf` 中添加模块和相关配置。首先,确保 Apache 已加载 `proxy_module` 和 `proxy_ajp_module`,这可以通过在 `httpd.conf` 文件末尾添加 ...

    apache+tomcat整合.pdf

    通过这些配置项,Apache能够识别出需要转发到Tomcat的请求,并通过JK连接器将这些请求发送到Tomcat服务器处理。 整合完成后,Apache服务器将能够处理静态内容的请求,同时也能够将JSP和Servlet的请求转发到Tomcat...

    Apache+多个Tomcat 服务器集群配置

    将以下Module的注释去掉,这里并没有使用mod_jk.so进行apache和tomcat的链接,从2.X以后apache自身已集成了mod_jk.so的功能。只需简单的把下面几行去掉注释,就相当于以前用mod_jk.so比较繁琐的配置了。这里主要采用...

    Apache+Tomcat+6高级编程

    3. **Apache与Tomcat的集成**:重点讲述了AJP协议(Apache-Java-Protocol)的使用,它是Apache与Tomcat之间通信的默认协议,以及如何配置mod_jk或mod_proxy_ajp模块进行集成。此外,还讨论了HTTP代理和反向代理的...

    apache+tomcat 负载平衡

    Apache可以通过mod_proxy、mod_jk、mod_proxy_ajp等模块与Tomcat进行通信。 3. **mod_proxy 模块**: Apache的mod_proxy模块提供了反向代理和负载平衡功能。配置mod_proxy可以在Apache配置文件中定义多个后端...

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

    3. **集群配置**:Apache+Tomcat集群的核心配置主要涉及Apache的 mod_proxy 和 mod_proxy_ajp 模块。mod_proxy用于反向代理,将请求转发给后端服务器;mod_proxy_ajp则是与Tomcat通信的AJP(Apache JServ Protocol)...

    linux下apache+tomcat实现集群

    Apache通过模块如mod_proxy或mod_proxy_ajp与Tomcat进行通信。 1. **Apache配置**: - 安装Apache:在Red Hat 5上,使用`yum install httpd`命令安装Apache。 - 配置mod_proxy:启用mod_proxy模块,编辑`/etc/...

    apache+tomcat配置集群文档及安装资源包

    在Apache+Tomcat的集群配置中,Apache通常作为前端负载均衡器,通过mod_proxy模块将请求分发到后端的多个Tomcat实例上。 以下是配置Apache+Tomcat集群的主要步骤: 1. **安装Apache和Tomcat**:首先确保在所有...

    Linux下面配置Apache2 + tomcat7.0 + ssl 集群安装与配置

    这个配置过程完成后,你的Linux系统上就会有一个支持SSL的Apache2和Tomcat7.0集群,能够处理HTTP和HTTPS请求,并通过AJP协议与后端Tomcat实例进行通信。这不仅可以提高安全性,还可以通过负载均衡提高系统的可伸缩性...

    Apache+tomcat+ssl配置+相关插件

    总的来说,Apache+Tomcat+SSL配置是一个涉及多方面知识的过程,包括网络协议、服务器配置、安全策略等。通过正确配置和使用相关插件,你可以构建起一个高效且安全的Web服务环境。在实际操作中,务必注意每个环节的...

Global site tag (gtag.js) - Google Analytics