Apache+tomcat的集群详细配置过程(2014-02-21)

 

apache+tomcat集群配置文档(2014-02-21)

一、配置环境:

系统环境:windows2003系统,

 

jdk安装:jdk1.6版本(如果是jdk1.7的话,配置成功后启动一个tomcat时,不会报错,当启动两个或两个以上的话,就会抛出异常---java.net.SocketException: Invalidargument: no further information,具体原因未知)。

 

apache版本: httpd-2.2.25-win32-x86-no_ssl.msi。

下载地址:

http://pan.baidu.com/share/link?shareid=2493398705&uk=1361801351&fid=2223994582

 

tomcat版本:apache-tomcat-6.0.35-windows-x86.zip

下载地址:http://tomcat.apache.org/download-60.cgi

 

mod_jk版本:tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip

下载地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

 

二、安装步骤:

1、jdk安装:

1.1、jdk安装。。。略
1.2、环境变量的配置:

(1)  新建 JAVA_HOME设值:  E:\Java\jdk1.6.0 (即jdk安装的位置)

 

(2)新建CLASSPATH 设值:  .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

 

(3)编辑PATH  在最后面添加:  ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

2、apache安装

2.1、程序安装

点击安装程序,下一步、下一步 。。。在Apache的安装过程中要设置Network Domain和Server Name为Localhost,设置你的Email地址(这个一定要设置,不然Apache启动不起来)。

 

2.2、出现的问题

在安装完成以后,弹出dos界面,提示的是80端口被占用了,如图:

 

解决办法:找到安装apache的位置(我的是:F:\Apache2.2\conf),conf文件夹下的httpd.conf文件。用文本编辑器打开,找到如图的位置(ctrl+f查找,汗。。。):


把listen 80 修改为 listen 1989(即一个没有被占用的端口号就可以)。保存

 

查看端口号是否被占用的方法:

打开cmd

输入命令:netstat –aon|findstr ‘你要查看的端口号,例如80’,即

netstat –aon|findstr“80”

 

在浏览器地址栏中输入:http://localhost:1989,显示如下图,即说明apache安装成功


恭喜你,在通往架构师的路上迈出了历史性的一步!^_^

 

 

3、集群的配置

3.1、tomcat的title修改

首先解压两份tomcat,放到同一个文件夹下(我的是:F:\Tomcat Group)

如图:

 

在此路径下:F:\Tomcat Group\apache-tomcat-6.0.35-1\的bin文件夹下找到catalina.bat文件,用文本编辑器打开,找到如下图的位置

即设置tomcat启动后,dos窗口显示的名称Tomcat1,是第一个tomcat;tomcat2是第二个tomcat。效果图:


这样做的好处是:当启动多个tomcat时,可以很容易分辨。当然,也可以不用修改。

 

 

3.2、tomcat的server.xml文件的修改

在此路径下:F:\Tomcat Group\apache-tomcat-6.0.35-1\的conf文件下,找到server.xml文件,用文本编辑器打开。

需要修改的地方一共有三个地方:

1、<Server port="8005"shutdown="SHUTDOWN">

2、<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

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

4、<Engine name="Catalina"defaultHost="localhost">

 

前3修改因为是多个tomcat,同样的端口号就会出现端口号冲突。第4处的修改是为后面的配置服务,

 

我的修改是:tomcat1

1、<Server port="8105"shutdown="SHUTDOWN">

2、<Connector port="8180" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

3、<Connector port="8109" protocol="AJP/1.3"redirectPort="8443" />

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

 

我的修改是:tomcat2

1、<Server port="8205"shutdown="SHUTDOWN">

2、<Connector port="8280" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

3、<Connector port="8209" protocol="AJP/1.3"redirectPort="8443" />

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

 

注:只要端口号不冲突,是可以随意设值的。jvmRoute的值也是可以随意设置的

 

多个tomcat的session共享的修改:

在server.xml文件中找到:

<!—

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

-->

把注释拿掉,即可。

 

3.3、apache的httpd.conf修改

在此路径下F:\Apache2.2\conf,即conf文件夹下,找到httpd.conf文件,用文本编辑器打开

在最后面添加:

include  “F:\Apache2.2\conf\mod_jk.conf”

3.4、建立mod_jk.conf文件

即在conf文件夹下用文本文档建立一个名为mod_jk.conf的文件。用文本编辑器打开,在里面添加如下内容:

#加载mod_jk Module

LoadModule jk_modulemodules/mod_jk.so

#指定 workers.properties文件路径

JkWorkersFileconf/workers.properties

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器

#把所有的请求除*.html、*.htm外都交给controller

JkMount /* controller

JkUnMount /*.html controller

JkUnMount /*.htm controller

 

#指定jk的日志输出文件

JkLogFile logs/mod_jk.log

#指定日志级别

JkLogLevel debug

 

3.5、mod_jk.so文件

解压tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip压缩文件,把文件mod_jk.so文件拷贝到F:\Apache2.2\modules文件夹里

 

3.6、建立workers.properties文件

在F:\Apache2.2\conf文件夹下,建立名为workers.properties文件,在里面添加如下内容:

 

# worker列表,controller和mod_jk.conf文件里的controller对应,

worker.list=controller,tomcat1,tomcat2

#第一个server的配置,server名为tomcat1

#ajp13 端口号,和tomcat的第3项修改对应

worker.tomcat1.port=8109

#tomcat的主机地址,如不为本机,请填写ip地址

worker.tomcat1.host=localhost

worker.tomcat1.type=ajp13

#server的加权比重,值越高,分得的请求越多

worker.tomcat1.lbfactor=1

#第二个server的配置,server名为tomcat2

worker.tomcat2.port=8209

worker.tomcat2.host=localhost

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

 

 

#server名为controller,用于负载均衡

worker.controller.type=lb

#指定分担请求的server列表,用逗号分隔

worker.controller.balanced_workers=tomcat1,tomcat2

#1.worker.controller.sticky_seesion如果设为true则说明会话具有“粘性”,也就是如果一个用户在一个Tomcat中建立了会话后则此后这个用户的所有操做都由这个Tomcat服务器承担。

#集群系统不会进行会话复制。如果设为false则下面的 sticky_session_force无意义。

worker.controller.sticky_session=false

#2.sticky_session_force:假设sticky_session设为true,用户会话具有了粘性,

#当当前Tomcat服务器停止服务后,如果sticky_session_force为true也就是强制会话与当前Tomcat关联,那么会报500错误,如果设为false则会转到另外的Tomcat服务器。

worker.controller.sticky_session_force=false

 

 

3.7、web项目的web.xml文件的修改

在web.xml文件里的web_app标签里面添加

 

<distributable/>

 

实现session共享

 

 

OK,到此处。整个集群就配置完成啦。可以建立项目进行测试了,如需转载,请标明出处.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值