tomcat+apache+terracotta做集群

编程技术  /  houtizong 发布于 3年前   33

使用 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.soJkWorkersFile conf/workers.propertiesJkLogFile logs/mod_jk.logJkMount /* loadbalancerJkMount /*.action loadbalancerJkMount /*.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=loadbalancerworker.worker1.type=ajp13 worker.worker1.host=localhostworker.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 /* loadbalancerJkMount /*.action loadbalancerJkMount /*.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 -qset 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=ajp13worker.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=localhostworker.worker3.port=11009worker.worker3.lbfactor=5worker.loadbalancer.type=lb worker.loadbalancer.balanced_workers=worker1,worker2, worker3
 

然后新加入一个 tomcat tomcat-3, 修改 tomcat3 server.xml 文件为相应的端口 , 同上面的修改差不多相同 , 然后重启 apache. 再启动 tomcat-3 就可以了 .
现在就有三个节点了.

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客