tomcat+apache+terracotta做集群
使用apache2.2.4+tomcat6+terracotta2.7.0-stable0
进行集群.
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,
加入以下内容到该文件
:
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
节点改为
<Server port="9005" shutdown="SHUTDOWN">
找到
Http
的
connector
节点改为
<Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9443" />
找到
ajp
的
connector
节点改为
:
<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
节点改为
:
<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
节点改为
<Server port="10005" shutdown="SHUTDOWN">
找到
Http
的
connector
节点改为
<Connector port="10080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="10443" />
找到
ajp
的
connector
节点改为
:
<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
节点改为
:
<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
文件
,
加入以下配置
:
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
文件内容变为
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
就可以了
.
现在就有三个节点了.
页:
[1]