`

apache+tomcat集群01 HTTP代理模式

阅读更多

 

前篇简单对集群进行了说明,其中apache服务器和tomcat的连接方法其实有三种:JKhttp_proxyajp_proxy。本文主要介绍http_proxy方式。

 

一、需要的软件包

JDKjdk-6u7-linux-i586.bin

Apacheapache_2.2.25-win32-x86-openssl-0.9.8k

Tomcatapache-tomcat-6.0.16.tar.gz

 

二、Apache 安装说明   

我们知道Apache的东西我们都可以从http://apache.org/网站上找到。

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

Tocmat67。经测试,2个版本的Apache负载均衡配置过程都是一样的,因此下面的配置在Tomcat67集群是通用的。但是按照下面的配置,集群中Tomcat不能既有Tomcat6又有Tomcat7,否则虽能够负载均衡,但不能进行session复制,不知其他方式配置的集群是否可以。

 

三、配置

 

修改Apache安装目录的conf目录下的httped.conf文件

1、  加载module

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

 

2、  继续添加如下配置

ProxyPass / balancer://loadbalancer/
ProxyPassReverse / balancer://loadbalancer/
<Proxy balancer://loadbalancer/>
BalancerMember http://localhost:8081/
BalancerMember http://localhost:8082/
BalancerMember http://localhost:8083/
</Proxy>

 

3、  配置tomcat容器

参见:tomcat集群中实现Session共享

 

四、测试

 

新建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>");
		// 如果有新的 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="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>

 将项目部署到3个服务器,然后分别启动Apache3Tocmat服务器,这些Tomcat启动顺序随意,然后打开http://localhost/TestTomcat/test.jsp

 

F5刷新结果如下:

 

 

多次刷新页面的sessionID看是同一个ID,说明session是复制成功了。那么session中的存储的东西呢,在输入框中分别输入112233后,显示结果如下图:

 

 

以上的测试说明,集群中的session已经共享,每个集群对于同一访问均有相同的session,而且session中存储的变量也复制了。

 

五、节点插拔测试

插拔意思是应该保证当运行的集群中某节点中关闭或者启动时,集群正常工作并且节点能够正常工作。

        关闭Tomcat2,刷新页面,则不断访问Tocmat1Tomcat3,再关闭Tomcat1后,则只访问一个Tomcat3,说明节点关闭时运行正常。

如果重启Tomcat2,无论怎么刷新,始终访问Tomcat3,难道Apache不能将请求转发给中途启动的Tomcat2。这时利用另外台机器访问页面,发现Tomcat2正常,然后在刷本地页面,又可以访问Tomcat2了。

从上面可以看出Apache的负载均衡时的算法了,对于每个新来的sessionApache按照节点配置中的lbfactor比重选择访问节点,如果某节点node1不能访问,则寻找下一可访问节点,并且将此node1就在该访问session的访问黑名单中,以后该session的访问直接不考虑node1,即使node1又可以访问了。而新来的session是无黑名单的,如果新的session能够访问到node1了,则会将node1在其他所有session访问的黑名单删除,这样其他session就又能访问node1节点了。

 

 

  • 大小: 51.1 KB
  • 大小: 53.1 KB
  • 大小: 50.8 KB
  • 大小: 49.8 KB
  • 大小: 49.8 KB
  • 大小: 51.1 KB
分享到:
评论
1 楼 zhuchao_ko 2013-08-07  

相关推荐

    反向代理负载均衡 Apache + Tomcat集群

    反向代理负载均衡 Apache + Tomcat集群 多的我也不多说了 看文档

    apache+tomcat集群配置

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

    Apache+Tomcat集群配置

    Apache+Tomcat集群配置,Apache+Tomcat集群配置,Apache+Tomcat集群配置

    Apache+Tomcat集群配置续

    Apache+Tomcat集群配置续Apache+Tomcat集群配置续Apache+Tomcat集群配置续Apache+Tomcat集群配置续

    Apache+Tomcat集群

    Apache+Tomcat集群是一种常见的Web服务器和应用服务器集群架构,用于提高网站的可用性和可扩展性。Apache作为前端服务器,负责接收客户端的HTTP请求,并根据配置的负载均衡策略将这些请求转发给后端的多个Tomcat实例...

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

    本文将详细介绍如何在一机双Tomcat环境下搭建Apache+Tomcat集群,并深入解析其中的关键配置和技术细节。 #### 二、Apache+Tomcat集群的优势 1. **高可靠性(HA)**:通过集群管理软件实现在主服务器发生故障时,备份...

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    apache+tomcat集群

    apache+tomcat集群 配置使用方法

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

    Apache+Tomcat+JK是一个常见的Web服务器和应用服务器集群解决方案,用于实现负载均衡和高可用性。这个配置中,Apache作为前端反向代理服务器,Tomcat作为后端的应用服务器,而JK模块是Apache与Tomcat之间的连接器,...

    apache+tomcat集群文档

    - 本文档针对Apache Tomcat集群配置进行了详尽的说明,特别适合新手入门学习,通过本文档能够快速掌握Apache Tomcat集群的基本概念、搭建步骤及注意事项。 #### 知识点详解: ##### 一、集群基础知识 1. **学习...

    Apache+Tomcat+Linux集群和负载均衡

    - 通过浏览器访问`http://172.16.116.1/index.jsp`,检查是否能够成功访问,并观察日志文件确认请求是否被正确地分发至Tomcat集群中的不同节点。 #### 四、注意事项 1. **权限问题**: 确保所有操作均以具有足够...

    apache+tomcat集群技术总结

    4. **本地配置Apache + Tomcat集群** - **环境说明**:在这个例子中,我们有一个Apache服务器和两个Tomcat实例,以及mod_jk模块用于两者之间的通信。 - **安装与配置**: - 安装Apache和Tomcat,确保版本匹配。 ...

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

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

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

    【Apache+Tomcat 集群与负载均衡及Session...通过以上配置,Apache+Tomcat集群可以实现高效的负载均衡和高可用性,同时通过Session绑定确保用户会话的连续性。注意定期监控和优化集群性能,以应对不断变化的业务需求。

Global site tag (gtag.js) - Google Analytics