tomcat+apache+terracotta做集群

[url]http://huaiyude06.iteye.com/blog/225776[/url]
1. apache2.2.4+tomcat6+ssl 的整合 , 我是使用 mod_JK 整合的 ,mod_JK 为 mod_jk-1.2.26-httpd-2.2.4.so
(1). 安装 apache2.2.4, 我使用的是 apache_2.2.4-win32-x86-openssl-0.9.8d.msi 来安装的 .
(2). 配置 apache.
先将 mod_jk-1.2.26-httpd-2.2.4.so 复制到 <APACHE_HOME>\modules 中 . 修改 <APACHE_HOME>\conf\httpd.conf 文件 , 加入 :

LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so  

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

JkMount /* loadbalancer

JkMount /*.action loadbalancer

JkMount /*.html loadbalancer



在 <IfModule dir_module> 标签中加入 login.jsp.

为了支持 ssl, 还要去掉 LoadModule ssl_module modules/mod_ssl.so 行的注释和Include conf/extra/httpd-ssl.conf行 的注释 .

在 <APACHE_HOME>\ conf 目录下创建 workers.properties 文件 , 改文件的配置为 :


worker.list=loadbalancer  

worker.worker1.type=ajp13

worker.worker1.host=localhost

worker.worker1.port=9009

worker.worker1.lbfactor=5

worker.worker1.redirect=worker2

worker.worker2.type=ajp13

worker.worker2.host=localhost

worker.worker2.port=10009

worker.worker2.lbfactor=5

worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=worker1,worker2



为了支持 ssl 修改 <APACHE_HOME>\conf\extra 目录下的 httpd-ssl.conf 文件 , 修改 certificate file 为 SSLCertificateFile <APACHE_HOME>/conf/blarg.cert, 修改 keyfile 为 SSLCertificateKeyFile <APACHE_HOME>/conf/blarg.key, 还要配置 ssl 的 mod_JK, 加入以下内容到该文件 :


Java代码
JkMount /* loadbalancer

JkMount /*.action loadbalancer

JkMount /*.html loadbalancer

使用 openssl 工具生成 blarg.cert 和 blarg.key 文件放到 <APACHE_HOME>\conf 目录下 ,apache 部分配置完成 .

(3). 安装两个 tomcat 分别是 tomcat-1 和 tomcat-2, 配置 tomcat-1 和 tomcat-2.
配置 tomcat-1, 配置 <TOMCAT_HOME>\conf 下的 server.xml, 找到 Server 节点改为
Xml代码
<Server port="9005" shutdown="SHUTDOWN">

找到 Http 的 connector 节点改为
Xml代码
<Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9443" />

找到 ajp 的 connector 节点改为 :
Xml代码
<Connector port="9009" protocol="AJP/1.3" redirectPort="9443" />

加入 ssl 的 connector:


<Connector SSLEnabled="true" acceptCount="100"  

clientAuth="false" disableUploadTimeout="true" enableLookups="true"

keystoreFile="server.keystore" keystorePass="changeit"

maxSpareThreads="75" maxThreads="200" minSpareThreads="5" port="9443"

scheme="https" secure="true" sslProtocol="TLS" />


找到 Engine 节点改为 :

Xml代码
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">,
jvmRoute 为 session_sticky 的关键一定要对应 workers.properties 的 worker 名 .

生成 server.keystore 文件放入 <TOMCAT_HOME> 下 .

配置 tomcat-2, 配置 <TOMCAT_HOME>\conf 下的 server.xml, 找到 Server 节点改为
Xml代码
<Server port="10005" shutdown="SHUTDOWN">

找到 Http 的 connector 节点改为
Xml代码
<Connector port="10080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="10443" />

找到 ajp 的 connector 节点改为 :
Xml代码
<Connector port="10009" protocol="AJP/1.3" redirectPort="10443" />

加入 ssl 的 connector:


<Connector SSLEnabled="true" acceptCount="100"

clientAuth="false" disableUploadTimeout="true" enableLookups="true"

keystoreFile="server.keystore" keystorePass="changeit"

maxSpareThreads="75" maxThreads="200" minSpareThreads="5" port="10443"

scheme="https" secure="true" sslProtocol="TLS" />

找到 Engine 节点改为 :

Xml代码
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">


生成 server.keystore 文件放入 <TOMCAT_HOME> 下 .

2. 整合两个 tomcat6 和 terracotta

我使用的是 terracotta2.7.0-stable0. 因为 terracotta 的官方稳定版本 2.6.2 用在我们项目中是有 bug 的 , 当启动 tomcat 会有 java.lang.NoSUchFieldError:DSO 异常 .
(1). 安装 terracotta
我使用的安装文件是 terracotta-windows2.7.0-stable0.exe.
生成自己项目的 boot-jar, 到 <TERRACATTA_HOME> \lib\dso-boot 的删除所有 jar 文件 , 然后转到命令行 , 进入 <TERRACATTA_HOME>\bin 下 , 使用以下命令行命令生成我们项目的 boot-jar:

make-boot-jar –f tc-config.xml
该 tc-config.xml 文件是我给的那个 tc-boot-jar.xml 文件 的位置.

在每个 <TOMCAT_HOME>\bin 目录下新建一个 setenv.bat 文件 , 加入以下配置 :

Java代码
set TC_INSTALL_DIR=<TERRACOTTA_HOME>

set TC_CONFIG_PATH="localhost:9510"

call %TC_INSTALL_DIR%\bin\dso-env.bat -q

set JAVA_OPTS=%TC_JAVA_OPTS% %JAVA_OPTS%


(2). 启动 terracotta 和 tomcat
转到命令行 , 进入 <TERRACOTTA_HOME>\bin 目录下 , 使用以下命令行命令运行 terracotta
start-tc-server -f tc-config.xml
该 tc-config.xml 文件为我给的 tc-config.xml 文件的位置 .
双击 startup.bat 启动 tomcat 就可以了 .

正常的话 , 应该在 admin console 中看两个 client 和一个 server 了 .

二 . 新加一个 tomcat.
1. 配置 apache.
在 wokers.properties 中加多个 worker 为 worker3, 现在 workers.properties 文件内容变为


Java代码
worker.list=loadbalancer

worker.worker1.type=ajp13

worker.worker1.host=localhost

worker.worker1.port=9009

worker.worker1.lbfactor=5

worker.worker1.redirect=worker2

worker.worker2.type=ajp13

worker.worker2.host=localhost

worker.worker2.port=10009

worker.worker2.lbfactor=5

worker.worker2.redirect=worker3

worker.worker3.host=localhost

worker.worker3.port=11009

worker.worker3.lbfactor=5

worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=worker1,worker2, worker3

然后新加入一个 tomcat 为 tomcat-3, 修改 tomcat3 的 server.xml 文件为相应的端口 , 同上面的修改差不多相同 , 然后重启 apache. 再启动 tomcat-3 就可以了 .
现在就有三个节点了.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值