文档章节

用Apache和Tomcat搭建集群和实现负载平衡

我勒个屮艸芔茻
 我勒个屮艸芔茻
发布于 2014/04/21 12:09
字数 1696
阅读 77
收藏 0

今天在oschina上看到这篇文章觉得非常有价值,留作备用,稍后回去自己架设。
(一)前期准备

我的系统用的是windowsXP专业版,我要做的是,用一个apache和多个(这里以两个作为示例)tomcat,通过jk方式,构造一个集群。以下是要首先准备的东西:

1、jdk,我用的版本是jdk1.6 sun官网下载

2、apache,我用的版本是2.2.21,下载地址:http://labs.renren.com/apache-mirror//httpd/binaries/win32/httpd-2.2.21-win32-x86-openssl-0.9.8r.msi

3、tomcat,我用的版本是6.0的解压版本,这里要注意:不能用安装的版本,因为一台机器上装两个一样的tomcat,是会出错误的。下载地址是:http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-6/v6.0.33/bin/apache-tomcat-6.0.33-windows-x86.zip

4、jk,这个jk的版本,本来有两个的,但是版本2已经被废弃掉了,目前可用的jk版本是1.2.25。每个apache的版本,都会有一个特定的jk与之对应,所以这里要用的jk也必须是为apache-2.2.4开发的那个才行。它的下载地址是http://download.csdn.net/detail/stonewang/499781

有了这四样东西,我们就可以开始做集群了。

(二)安装

1、相信需要看这篇文章的人,JDK的安装一定不会陌生,这里不在赘述。只是需要提醒一下:环境变量别忘记配置了。

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

3、解压缩tomcat,记得要做两份。这里不妨将两个tomcat命名为:tomcat- 5.5.25_1和tomcat-5.5.25_2,其实这两个文件夹中的东西是完全一样的。但是我为了在同一台机器上做集群,那就要保证两个 tomcat运行起来不会在端口上起冲突。进入tomcat-5.5.25_1/conf目录,用文本编辑器打开并修改server.xml,将该 tomcat的默认8080端口改为8088(其实没必要改,我改这个是因为我机器上还有其他tomcat占用着8080端口)。然后进入tomcat- 5.5.25_2/conf目录,同样将8080修改掉,至于改成多少没多大关系,只要不占用其他程序的端口,应该不会出什么问题。这样,tomcat就算安装好了。

4、jk这东西是一个连接模块,不用安装,直接将mod_jk-1.2.26-httpd-2.2.4这个文件拷贝到apache安装目录下的modules文件夹下面就行了。

这样,安装完成,下面开始配置。

(三)配置

这个地方才是搭建集群的关键所在,我也会尽我的可能写的详细点。

1、配置tomcat

为防止冲突,进入第二个tomcat主目录,然后进入conf目录,打开server.xml修改配置。主要是修改端口,我这里把所有的端口信息,都在原有基础上加1000,即原端口是8009,我改为9009。当然,你不必和我一样,只要保证不冲突就 OK!这些配置在apache的配置中可能会用到。

2、配置apache

(1)进入apache的主目录,然后进入conf文件夹,用文本编辑器打开httpd.conf,在该文件末尾加上如下几行:

### 加载 mod_jk 模块
LoadModule jk_module modules/mod_jk-apache-2.2.4.so
### 配置 mod_jk
JkWorkersFile conf/workers.properties           #加载集群中的workers
JkMountFile conf/uriworkermap.properties    #加载workers的请求处理分配文件
JkLogFile logs/mod_jk.log                                #指定jk的日志输出文件
JkLogLevel warn                                                  #指定日志级别

(2)不要改变目录,新建一个文件:workers.properties,该文件用来配置web容器的信息。该文件的内容如下:

# worker列表
worker.list=controller, status
#第一个server的配置,server名为s1
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.s1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.s1.host=localhost
worker.s1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.s1.lbfactor=1
#第二个server的配置,server名为s2
worker.s2.port=9009
worker.s2.host=localhost
worker.s2.type=ajp13
worker.s2.lbfactor=1
#server名为controller,用于负载均衡
worker.controller.type=lb
worker.retries=3   #重试次数
#指定分担请求的server列表,用逗号分隔
worker.controller.balanced_workers=s1,s2
#设置用于负载均衡的server的session可否共享 有不少文章说设置为1是可以的,但是我是设置为0才可以的
worker.controller.sticky_session=0
#worker.controller.sticky_session_force=1
worker.status.type=status

(3)不要改变目录,新建一个文件:uriworkermap.properties,文件内容如下:

/*=controller                        #所有请求都由controller这个server处理
/jkstatus=status                   #所有包含jkstatus请求的都由status这个server处理
!/*.gif=controller                   #所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思
!/*.jpg=controller
!/*.png=controller
!/*.css=controller
!/*.js=controller
!/*.htm=controller
!/*.html=controller

这里的”!”类似于java中的”!”,是“非”的意思。

这样,apache一块就配置好了。

3、再修改tomcat配置:这里两个tomcat都要配置。

仍然是打开第一步中的那个server.xml文件,找到这一行,在里面加上一句:jvmRoute=”s1″,即把该句改为:。这里的s1就是第二步中配置的用于负载均衡的server的名称。如果该tomcat的端口是第二步中s1用的端口,那这里就写s1,第二个tomcat就应该是s2了。

4 配置集群环境session共享

a 修改server.xml 放开注释

<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->

b 修改web.xml配置文件 在 中介增加 属性
这样,配置就完成了。

(四)运行

进入两个tomcat的bin目录,执行两个tomcat的startup.bat启动这两个 tomcat,然后将apache重新启动后,运行起来看看效果吧。如果不出意外,两个tomcat的窗口应该是你一次我一次的打印日志信息了,而且此时 session也是共享了的。

到这里,集群搭建好了,负载均衡也实现了。

© 著作权归作者所有

共有 人打赏支持
我勒个屮艸芔茻

我勒个屮艸芔茻

粉丝 36
博文 76
码字总数 46903
作品 0
西安
后端工程师
私信 提问
Apache httpd与tomcat集群

回顾 前几天,刚刚搭建了apache httpd的静态网站,并为其开启的SSL。http://my.oschina.net/xpbug/blog/197454 今天在其基础上,我们将使用tomcat搭建集群,并把httpd改造成一个load banlen...

xpbug
2014/02/08
0
4
Aphache + Tomcat 集群

apache与tomcat及整合实现负载均衡及集群(转) (1)apache与tomcat的区别: Apache是一个web服务器环境程序,可以作为web服务器使用。不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页的就显...

guibawudi1985
2012/07/30
0
0
windows环境 apache2.2.21+tomcat6集群和负载均衡配置(深圳网新新思)

一、集群和负载均衡的概念 (一)集群的概念   集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文...

空谷幽兰
2012/04/30
2.4K
3
Apache + Tomcat +mod_jk实现集群服务

Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。 实现效果:用apache 分发请求到tomcat中的对应的项目 环境说明: 操作系统:window xp Javasdk: 1.7 Apache...

john_ke
2016/10/08
28
0
利用Spring Security 3.2的remember-me搭建SSO

回顾 在上一篇文章,我实现了Spring Security3.2搭建的第一个网站应用firstWeb. 进阶-使用Spring Security3.2搭建LDAP认证授权和Remember-me。 而在更早的时候,我有使用Apache+tomcat搭建c...

xpbug
2014/02/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《大话数据结构》读后总结(四)

一、算法 1、算法效率的度量方法 1.1 事后统计方法 通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。该方法具有很大缺陷,不...

徐曙辉
44分钟前
2
0
Android 整体设计及背后意义

阿里妹导读:现实工作中经常可以听到这样的说法:框架的升级带来协议性能的提升、编程模式的变革带来业务的飞跃...... 姑且不论这些表述是否有问题,实际上如果系统地看待事物整体,可能会有...

阿里云云栖社区
46分钟前
2
0
一文纵览EMAS 到底内含多少阿里核心技术能力

EMAS的整体定位是阿里巴巴移动技术对外输出的主窗口,沉淀了阿里巴巴近10年在移动互联网技术架构上的积累以及在一系列垂直场景中所实践的核心技术能力。一方面,EMAS希望为广大开发者提供安全...

阿里云官方博客
今天
2
0
Prometheus简介

Prometheus是什么? Prometheus(普罗米修斯)是一套最初在SoundCloud上构建的开源监视和告警系统 。 特征 普罗米修斯的主要特点是: 具有由度量名称和键/值对标识的时间序列数据的多维数据模...

阿dai学长
今天
2
0
Android 动画Animation

动画分为视图动画(view animation)和属性动画(property animation),视图动画又分为帧动画和补间动画 视图动画控件(iv)点击事件(OnClickListener接口)触发位置在原位置 1.帧动画(Fra...

Coding缘
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部