设为首页 收藏本站
查看: 1114|回复: 0

[经验分享] Tomcat:基于Apache+Tomcat的集群搭建

[复制链接]

尚未签到

发表于 2015-7-31 07:48:14 | 显示全部楼层 |阅读模式
  根据Tomcat的官方文档说明可以知道,使用Tomcat配置集群需要与其它Web Server配合使用才可以完成,典型的有Apache和IIS。
  这里就使用Apache+Tomcat方式来完成基于Tomcat在集群配置。
  

软件准备
  1)Apache HTTP Server:
  使用百度搜索httpd-2.2.25-win32-x86-no_ssl.msi,应该可以找到很多相关的下载链接。这里也提供一个:http://vdisk.weibo.com/s/C3trk_uGGkrmc
  2)Tomcat 7:
  Tomcat7下载链接:http://tomcat.apache.org/download-70.cgi
  3)Tomcat 连接器——JK:
  http://mirrors.cnnic.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/
DSC0000.png
  打开连接后下载版本:tomcat-connectors-1.2.40-windows-i386-httpd-2.2.x.zip
  
  
  

集群设计
  下面是一个集群设计架构图:
DSC0001.png
  
  如果是使用WebLogic或者是使用Glassfish等服务器,只需要根据相关说明做出相关配置即可。但是不论使用什么服务器,架构都是上面这样的。
  
  Tomcat是单实例的,也就是说一个Tomcat只能作为一个Server来使用。
  

Tomcat Connector
  
  Connector的作用:将不同协议的请求引渡到Tomcat 的Web Container中。Tomcat中现在可以处理的请求根据协议可以分为:HTTP、AJP,其中HTTP请求又可以包括APR方式的HTTP请求。
  
  相关参考文档:
  http://tomcat.apache.org/connectors-doc/reference/apache.html
  另外配方中的配置,都可以在这样链接下找到。
  

JK
  JK 其实是一个Tomcat Connector。Apache、IIS 是不支持jsp/servlet处理功能的Web Server,使用了JK就可以将jsp/Serverlt请求过渡到Tomcat中,让Tomcat来处理。
  
  

集群搭建
  下面就来说说如何搭建基于Apache +Tomcat的集群环境。
  Apache Server充当LB服务器的角色,其它的Tomcat实例充当Server的角色。按照下面的步骤操作进行,就可以快速的搭起了:
  1)安装Apache Server
  软件安装不用说明了,和其它的软件安装方式相同。
  2)安装tomcat
  解压即可,然后再拷贝一份放到磁盘上。这就是两个Tomcat了。
  3)在apache Server中添加jk模块
  解压之前下载的jk,将mod_jk.so放到Apache Server的modules目录下。
  4)配置work.properties和uriworkmap.properties
  
  work.properties如下:



worker.list=controller,s1,s2
worker.s1.type=ajp13
worker.s1.port=8009
worker.s1.host=localhost
worker.s1.lbfactor=1
worker.s2.type=ajp13
worker.s2.port=9009
worker.s2.lbfactor=1
worker.s2.host=localhost
worker.controller.type=lb
worker.controller.balanced_workers=s1,s2
worker.controller.sticky_session=false
  配置了3个Worker,其中controller代表LB服务器。s1,s2代表两个tomcat server。配置说明:
  uriworkermap.properties 如下:



/*=controller
  
  然后将这两个文件放到Apache Server的conf目录下。这个其实并没有规定放到哪里。
  
  另外:
  worker.properties如何配置,可以参考文档:
  http://tomcat.apache.org/connectors-doc/reference/workers.html
  uriworkermap.properties 如何配置,可以参考文档:
  http://tomcat.apache.org/connectors-doc/reference/uriworkermap.html
  
  5)在apache server下配置mod_jk.conf
  Mod_jk.conf内容如下:



# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# Send servlet for context /examples to worker named ajp13
#JkMount /servlet/* controller
# Send JSPs for context /examples to worker named ajp13
#JkMount /* controller
  配置完毕后,将文件放到Apache Server的conf目录下。
  
  6)配置httpd.conf,引入JK
  打开Apache Server的conf目录下的httpd.conf文件,在最后加入:



Include conf/mod_jk.conf
  这个配置,就是让Apache Server启动时,加载mod_jk的。
  7)将tomcat配置为集群实例
  
  Tomcat作为集群实例时,可以是在不同的机器上的,也可以在相同的机器上的,只要配置对了host和port就可以的。我这里配置的是在同一台机器上的。
  下面就是这两个tomcat的端口的配置:

  Tomcat

  S1 port

  S2 port

  Connector HTTP/1.1

  8001

  9001

  Connector AJP/1.3

  8009

  9009

  
  然后配置如下:
  为添加jvmRoute,变为:
  
  去掉前后的注释。

  
  
  ….
  

  配置完成后如图:
  S1:
DSC0002.png
  
  S2:
DSC0003.png
  
  到此集群就搭建好了。
  

在集群环境下访问应用
  
  1)创建Web应用ClusterTest
  添加index.jsp:




Hello, index.jsp




  配置web.xml为:





ClusterTest


index.jsp


  使用Eclipse导出为war文件ClusterTest.war。
  2) 部署web应用
  将ClusterTest.war放到两个tomcat的webapps目录下。
  
  3)启动集群:
  按顺序启动ApacheServer、Tomcat(S1)、Tomcat(S2)。
  4)浏览器访问web应用。
  输入链接:http://localhost/ClusterTest即可:
DSC0004.png
  可以看到sessionId(点号前面那一段),主机名称,请求的端口号。其中点号后面的表示是处理请求的Server名称。不断的刷新浏览器,seesionId是一样的,只是server名称不同。
  也可以直接使用浏览器访问S1或者S2:
DSC0005.png
  
  其实使用Apache+Tomcat有3种方案,参考: http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html
  如果想使用IIS+Tomcat配置集群,可以参考:http://tomcat.apache.org/connectors-doc/reference/iis.html
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92436-1-1.html 上篇帖子: 实战Apache+Tomcat集群和负载均衡 下篇帖子: Apache Spark源码走读之22
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表