前言
此处的配置是搭建在同一台pc机的,因此如果要搭建不同pc之间的负载均衡,并使用jk作为apache和tomcat的连接器来进行负载均衡,可参考我下面的说明。
描述
使用mod_jk默认的以轮循方式进行平衡负载,假设有两个服务器节点(正常运行情况下),并且有10个请求,并且第一个请求先到达节点1,则10个请求被分发的顺序如下:
节点1
|
节点2
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
环境的准备
需要的环境:jre(无者可安装jdk)、apache(我这里使用的是apache2.2.19)、jk(这是apache和tomcat的连接器,我使用的是mod_jk-1.2.31-httpd-2.2.3.so)和Tomcat(我使用Tomcat6.x)。Apache的安装在网上很多可参考进行安装,Tomcat的安装相信大家已经并陌生了。将tomcat分开两个目录安装(我这里安装了两个Tomcat,当然你可以安装更多)。
说明:安装Apache后打开浏览器输入http://localhost,如果页面出现” It works!”,则表明Apache安装成功。
配置
加入mod_jk模块
将文件mod_jk-1.2.31-httpd-2.2.3.so复制到Apache安装目录下modules文件夹中。
说明:该文件名是否需要更改,看自己习惯而定,但后面的配置必须引用此文件名。
Apache的httpd.conf文件配置
在Apache安装目录下的conf文件中找到httpd.conf文件,并在该文件中加上Include conf/mod_jk.conf(此mod_jk.conf文件将在后面谈及)。
说明:这样做的目的是为了整个配置结构的清晰,使得httpd.conf的内容简洁。
增加mod_jk.conf文件
在Apache安装目录下的conf文件中,创建mod_jk.conf文件,并在该文件中加入以下内容:
# Load mod_jk module 加载mod_jk
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
# Where to find workers.properties(引用workers配置文件)
JkWorkersFile conf/workers.properties
# Where to put jk logs(log文件路径)
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info](log级别)
JkLogLevel info
# Select the log format(log格式)
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# Send JSPs for context / to worker named loadBalancer(URL转发配置,匹配的URL才转发到tomcat进行处理)
#JkMount /*.* loadBalancer
JkMount /*.jsp controller
(注:此配置可独立成一个文件,只要在mod_jk.conf文件中加入JkMountFile conf/uriworkermap.properties,并在conf目录下创建uriworkermap.properties文件,将JkMount /*.jsp controller之类的url转发控制定义在该文件中即可)
# Send servlet for context /examples to worker named ajp13
# JkMount /servlet/* ajp13
增加workers.properties文件
在Apache安装目录下的conf文件中,创建workers.properties文件,并在该文件中加入以下内容:
#server 列表
worker.list=controller,loadBalancer
#tomcat1(ajp13 端口号,在tomcat下server.xml配置,默认8009)
worker.tomcat1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcat1.lbfactor=1
#tomcat2
worker.tomcat2.port=8109
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#controller(负载均衡控制器)
worker.controller.type=lb
#指定分担请求的tomcat
worker.controller.balance_workers=tomcat1,tomcat2
worker.loadBalancer.balance_workers=tomcat1,tomcat2
修改tomcat的server.xml配置
这里要修改其中一个tomcat的server.xml配置,在你的某个tomcat安装路径下的conf文件夹下找到server.xml文件,修改如下:
将8005端口改为8105,这里你可以改为你喜欢的值,只要不与系统的特定端口和8005(因为这个8005被你的另一个tomcat占用了)一样就行了。
将8080(同样这个端口被另一个tomcat占用了)端口改为8081。
将8009(已经被另一个tomcat占用)端口改为8109。
PS:这里的两个tomcat需要保证有一个的ajp端口为8009,否则会在apache启动时,报8009端口的错误(神马错误忘了,呵呵,可以自己试试),我个人认为要这样改的话可能需要更改某些配置。
说明:如果配置的tomcat不在同一台服务器里的话,无需做上面的端口配置修改。
编写页面测试代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test1</title>
</head>
<body>
<%
System.out.println(“session : “ + session.getId());
%>,
</body>
</html>
文件名为index.jsp
测试
打开浏览器输入http://localhost/test/index.jsp观察tomcat1后台输出
刷新页面,观察tomcat2的后台输出
两次请求被分开发送至两个tomcat里去了,并且两个session的id不同,说明两次请求的session不一样,但却是同一个窗口。因此要使得在这种情况下的两个session一样就要做集群(session的复制)。
- 大小: 4.9 KB
- 大小: 28.3 KB
- 大小: 5.2 KB
- 大小: 60.1 KB
- 大小: 55.9 KB
分享到:
相关推荐
一、Apache HTTP服务器负载均衡基础 Apache HTTP服务器可以通过其模块mod_proxy实现负载均衡功能。mod_proxy模块允许Apache将请求转发到不同的后端服务器,从而实现负载分散。它支持多种负载均衡策略,如轮询(round...
1. **使用JK 1.2.x Native Connector**:这是Tomcat的一种早期的负载均衡解决方案,通过连接器实现Apache与Tomcat之间的通信。 2. **使用mod_proxy和mod_proxy_ajp模块**:这种方式是现代Apache配置中常用的负载...
3. **Mod_jk 1.2.14**: Apache的一个模块,用于实现Apache与Tomcat之间的通信,特别是在负载均衡场景下,Mod_jk负责将请求转发到不同的Tomcat实例。 #### 三、安装与配置步骤详解 1. **安装Apache** - 进入 `/...
本篇文章主要探讨的是如何在走向架构师之路的第一天实现Apache与Tomcat的整合,这是一种常见的Web服务器与应用服务器的部署模式。 首先,我们需要理解J2EE工程的通用架构,它通常由三个主要部分构成:Web服务器...
五、Tomcat集群与负载均衡 通过Cluster模块,Tomcat支持多实例间的会话复制和故障转移,实现高可用性和负载均衡。可以结合外部负载均衡器如Nginx或Apache HTTP Server,进一步提升系统的扩展性。 六、日志与监控 ...
当单个Tomcat服务器无法满足高并发、高可用性或负载均衡的需求时,我们通常会采用集群的方式来提升系统的性能和可靠性。本篇文章将深入探讨如何配置Tomcat7集群。 【描述】:Tomcat7集群的搭建涉及到多个环节,包括...
4. 链接其他服务器:可以与Apache HTTP Server、Nginx等配合使用,实现负载均衡和反向代理。 五、常见应用场景 1. 开发与测试环境:由于轻量级和易于配置,Tomcat常用于开发和测试Java Web项目。 2. 小型生产环境...
在IT行业中,Linux操作系统与Apache Tomcat服务器的组合是构建高效、可扩展的Web应用程序的常见选择。Tomcat是一款开源的Java Servlet容器,用于运行Java Web应用。本篇内容将详细探讨如何在Linux环境中配置Tomcat...
通过mod_jk或mod_proxy_ajp模块,可以实现两者的无缝协作,提供更高的可扩展性和负载均衡能力。 总的来说,Tomcat服务器以其强大的功能和易用性,成为Java Web开发的重要工具。无论是初学者还是经验丰富的开发者,...
在本篇详细讲解中,我们将探讨Tomcat的核心概念、安装配置、以及与Java和Java EE的关系。 【正文】 Tomcat服务器是Apache软件基金会的Jakarta项目中的一个核心组件,它是完全符合Java Servlet和JavaServer Pages...
这是Apache的一个模块,用于与Tomcat等Java应用服务器集成,实现负载均衡和应用级代理。具体步骤如下: 1. **获取mod_jk模块**: 从Apache官方Apache Tomcat连接器项目下载mod_jk的源码或者预编译的二进制包。 2....
6. **集群和负载均衡**:Tomcat支持集群配置,通过复制session和负载均衡策略,可以实现高可用性和故障切换。 7. **与Spring Boot集成**:现代开发中,Tomcat常作为Spring Boot的内置服务器,简化了部署过程,同时...
它由阿里巴巴开发并维护,旨在提供简单、高效的服务发现、调用、负载均衡和服务治理能力。本视频教程的基础篇源代码6-10是针对初学者设计的,帮助他们快速掌握Dubbo的核心概念和实际操作。 首先,第07节"使用Maven...
本篇将围绕“tomcat7-tomcat-7.0.19.zip”这一版本,详细介绍Tomcat7的基础知识、安装与配置,以及其核心功能。 一、Tomcat7概述 Tomcat7.0.19是Tomcat7系列的一个稳定版本,它支持Java Servlet 3.0和JavaServer ...
这样,即使用户的请求在多个Tomcat实例间进行负载均衡,用户的会话状态也能保持一致,而不需要为每个Tomcat实例单独存储session数据。 ### 集群Session共享的安装配置 在本篇文档中,以CentOS 6.5系统作为基础环境...
第1部分 基础篇 第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx简介 1.3 选择Nginx的理由 1.4 Nginx与Apache、Lighttpd的综合对比 第2章 Nginx服务器的安装与配置 2.1 安装Nginx服务器所需要的系统资源 ...
- 对于大型项目,可能需要考虑集群部署,使用负载均衡技术提高可用性。 6. **安全考虑**: - 配置Tomcat的security-constraints,限制对敏感资源的访问。 - 使用HTTPS协议提供安全的网络通信。 - 对数据库连接...
9. **集群与负载均衡**:当单个Tomcat服务器不能满足需求时,可以采用集群和负载均衡技术。Tomcat支持session复制和黏滞会话,实现高可用性和负载均衡。 10. **最新版本特性**:随着Tomcat版本的更新,会有新的特性...