nikoo 发表于 2017-1-1 09:44:57

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]
查看完整版本: tomcat+apache+terracotta做集群