当前位置: 首页 > 科技观察

如何在Ubuntu上配置Tomcat集群?

时间:2023-03-18 23:50:35 科技观察

【译文精选】ApacheTomcat可以说是目前最流行的开源JavaWeb服务器。如果随着业务的不断发展,贵公司的网站预计会获得更多的访问量,那么单个Tomcat实例可能无法满足访问量不断增加的需求。在这种情况下,您可能会考虑在“集群”环境中运行Tomcat;Web服务器的工作负载分布在多个Tomcat实例中的环境。在本文中,我将向您展示如何配置具有负载平衡和会话复制机制的Tomcat集群。在我们深入了解配置细节之前,有必要澄清一些将出现在本教程中的术语。术语介绍负载均衡:前端服务器(常称为“负载均衡器”、“代理均衡器”或“反向代理”)收到HTTP请求后,将请求分发给多个“worker”web后端的服务器,它实际处理请求。负载均衡可以消除后端的单点故障,可以实现任何Web服务的高可用性、高扩展性以及更合理的资源优化。会话复制:会话复制是一种将客户端会话的整个状态逐字复制到集群中的两个或多个服务器实例以实现容错和故障转移功能的机制。通常,分布式状态服务会跨集群中的多个不同服务器实例复制客户端会话的状态。集群:集群由两个或多个以同步方式工作的Web服务器实例组成,以透明地处理客户端请求。客户端将一组服务器实例视为单个实体服务。集群的目的是为客户端提供高度可用的服务,同时尽可能高效地利用所有可用的计算资源。具体要求以下是搭建Tomcat集群的具体要求。在本教程中,我假设有三台Ubuntu服务器。服务器#1:带有mod_jk的ApacheHTTPWeb服务器(充当代理平衡器)服务器#2和服务器#3:Java运行时6.x或更高版本,以及ApacheTomcat7.x(充当工作Web服务器)。ApacheWeb服务器充当代理平衡器。ApacheWeb服务器是客户端唯一可以看到的服务器,所有Tomcat实例都对客户端隐藏。激活mod_jk插件后,ApacheWeb服务器将任何传入的HTTP请求转发到集群中的Tomcat工作实例。在本教程的其余部分,我将描述配置Tomcat集群的分步过程。第1步:使用mod_jk插件安装ApacheWeb服务器Tomcat连接器,以允许您将Tomcat连接到其他开源Web服务器。对于ApacheWeb服务器,Tomcat连接器显示为一个名为mod_jk的Apache模块。带有mod_jk的ApacheWeb服务器可以将Ubuntu服务器变成代理平衡器。要安装ApacheWeb服务器和mod_jk模块,只需使用以下命令。$sudoapt-getinstallapache2libapache2-mod-jk第2步:安装JDK和ApacheTomcat下一步是将ApacheTomcat安装到另外两台Ubuntu服务器,它们将充当工作程序并实际处理HTTP请求。由于ApacheTomcat需要JavaDevelopmentKit(JDK),因此您还需要安装它。请参考本指南:http://ask.xmodulo.com/install-apache-tomcat-ubuntu-debian.html了解如何在Ubuntu服务器上安装JDK和ApacheTomcat。第3步:在ProxyBalancer上配置Apachemod_jk在Ubuntu上,mod_jk配置文件位于/etc/apache2/mods-enabled/jk.conf。使用下列内容更新该文件:#Weenedaworkersfileexactlyonce#andintheglobalserverJkWorkersFile/etc/libapache2-mod-jk/workers.properties#JKerrorlog#Youcan(andshould)userotatelogshereJkLogFile/var/log/apache2/mod_jk.log#JKloglevel(trace,调试,信息,警告,错误)JkLogLevelinfoJkShmFile/var/log/apache2/jk-runtime-statusJkWatchdogInterval60JkMount/*loadbalancerJkMount/jk-statusjkstatus#Configureaccesstojk-statusandjk-manager在虚拟主机中。#Addanappropriateauthenticationmethodhere!#InsideLocationwecanomittheURLinJkMountJkMountjk-statusOrderdeny,allowDenyfromallAllowfrom127.0.0.1#InsideLocationwecanomittheURLinJkMountJkMountjk-managerOrderdeny,allowDenyfromallAllowfrom127.0.0.1为了使上述配置适用于多个Tomcat实例,我们必须在/etc/libapache2-mod-jk/workers.properties中配置每个Tomcatworker实例。我们假设两台工作Ubuntu机器的IP地址是192.168。1.100和192.168.1.200。创建或编辑etc/libapache2-mod-jk/workers.properties,内容如下:worker.list=loadbalancer,jkstatus #ConfigureTomcatinstancefor192.168.1.100worker.tomcat1.type=ajp13worker.tomcat1.host=192.168.1.100worker.tomcat1.port=8081#worker"tomcat1"最多使用20个socket,socket在连接池中的驻留时间短至10分钟。worker.tomcat1.connection_pool_size=200worker.tomcat1.connection_pool_timeout=600#worker"tomcat1"将要求操作系统在连接上发送一个KEEP-ALIVE信号。worker.tomcat1.socket_keepalive=1#配置Tomcat实例为192.168.1.200worker.tomcat2.type=ajp13worker.tomcat2.host=192.168.1.200worker.tomcat2.port=8082#worker"tomcat2"最多使用20个sockets的话,套接字在连接池中的驻留时间只有10分钟。worker.tomcat2.connection_pool_size=200worker.tomcat2.connection_pool_timeout=600#worker"tomcat2"会要求操作系统在连接上发送一个KEEP-ALIVE信号。worker.tomcat2.socket_keepalive=1worker.jkstatus.type=statusworker.loadbalancer.type=lbworker.loadbalancer.balance_workers=tomcat1,tomcat2第四步:配置Tomcat实例,地址为192.168的Tomcat实例使用如下内容.1.100编辑/opt/apache-tomcat-7.0.30/conf/server.xml:使用下面的内容,为地址是192.168.1.200的Tomcat实例编辑/opt/apache-tomcat-7.0.30/conf/server.xml:第五步:测试Tomcat集群TomcatConnectors有一种特殊类型的worker,即所谓的stateworker,stateworker不会将请求转发给Tomcat实例,而是允许在运行时获取状态和配置信息,甚至动态更改许多配置选项。您可以通过访问状态工作者来监控Tomcat集群:只需使用网络浏览器并转到http:///jk-status即可轻松监控。英文:http://xmodulo.com/2014/06/configure-tomcat-cluster-ubuntu.html