南北软件在Tomcat群集环境下的部署
2008-11-06 18:34
162 查看
Tomcat群集
使用Tomcat作为应用服务器,在线用户数较多的情况下可以考虑使用多台服务器,使用群集和负载均衡来解决。使用群集的环境中还需要配置一台负载均衡服务器(HTTP服务器)来实现统一的入口访问,和负载的均衡。
我们以两台Tomcat应用服务器和一台HTTP服务器作为例子(当然他们可以安装在一台物理机器上):
192.168.0.1:作为Http服务器
192.168.0.2和192.168.0.3:作为Tomcat服务器
下面是配置过程:
192.168.0.2和192.168.0.3:安装Tomcat,并部署snsoft.war。
(如果是在一台机器上安装,可以考虑安装目录下snsoft7拷贝两份或多份tomcat目录,分别命名为tomcat1目录,tomcat2目录。
在这种情况下如果希望用注册Windows服务程序自动启动的方式,按如下步骤:
去掉原来的 Tomcat5 服务: snsoft7/tomcat/bin 下 执行 service remove Tomcat5
添加两个服务Tomcat51,Tomcat52:
snsoft7/tomcat1/bin 下 执行 service install Tomcat51;
snsoft7/tomcat2/bin 下 执行 service install Tomcat52
桌面上加两个快捷方式:
服务程序1 "C:/Program Files/Snsoft7/tomcat1/bin/tomcat5w.exe" //ES//Tomcat51,
工作目录:"C:/Program Files/Snsoft7/tomcat1/bin/";
服务程序2 "C:/Program Files/Snsoft7/tomcat2/bin/tomcat5w.exe" //ES//Tomcat52,
工作目录:"C:/Program Files/Snsoft7/tomcat2/bin/";
分别进入服务程序1和服务程序2 做相关设置: Java 虚拟机最大内存 设为 1024, Java 启动的 工作目录分别设为
C:/Program Files/Snsoft7/tomcat1/bin 和 C:/Program Files/Snsoft7/tomcat2/bin
)
修改每台机器Tomcat配置文件server.xml(tomcat/conf目录下):去掉server.xml中Host元素下的Cluster的注解。
<!--去掉此处的注解 --> <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" managerClassName="org.apache.catalina.cluster.session.DeltaManager" expireSessionsOnShutdown="false" useDirtyFlag="true" notifyListenersOnReplication="true"> <Membership className="org.apache.catalina.cluster.mcast.McastService" mcastAddr="228.0.0.4" mcastPort="45564" mcastFrequency="500" mcastDropTime="3000"/> <Receiver className="org.apache.catalina.cluster.tcp.ReplicationListener" tcpListenAddress="auto" tcpListenPort="4001" tcpSelectorTimeout="100" tcpThreadCount="6"/> <Sender className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" replicationMode="pooled" ackTimeout="15000" waitForAck="true" /> <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve" filter=".*/.gif;.*/.js;.*/.jpg;.*/.png;.*/.htm;.*/.html;.*/.css;.*/.txt;"/> <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/> </Cluster> <!--去掉此处的注解 -->
如果多个Tomcat在同一台物理机器上,必须修改相关的端口号,保证Server Port,Connector,Coyote/JK2 AJP Connector的端口号唯一:
端口配置 | Tomcat1服务器端口 | Tomcat2服务器端口 |
---|---|---|
Server Port | 8005 | 9005 |
Connector | 8000 | 9000 |
Coyote/JK2 AJP Connector | 8009 | 9009 |
Cluster tcpListenPort | 4001 | 4002 |
修改Apache的httpd.conf文件(安装目录的conf目录下):
将以下Module的注释去掉:及去掉下列行前面的#号
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
改为
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so
并在文件末尾增加一下内容:
ProxyRequests Off ProxyPass /snsoft balancer://snsoftcluster stickysession=jsessionid nofailover=On <Proxy balancer://snsoftcluster> BalancerMember http://192.168.0.2:8000/snsoft BalancerMember http://192.168.0.3:8000/snsoft </Proxy> <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Deny from all Allow from all </Location> <Location /server-status> SetHandler server-status Order Deny,Allow Deny from all Allow from all </Location>
注意:BalancerMember中所列的为Tomcat服务器的IP地址及HTTP连接端口号,如果多个服务器在一个物理机器上,
注意修改端口号。例如
BalancerMember http://192.168.0.2:8000/snsoft BalancerMember http://192.168.0.2:9000/snsoft
测试,启动各Tomcat服务器及HTTP服务器。
首先测试各Tomcat服务器正常启动:
在浏览器地址栏上输入http://192.168.0.2:8000/snsoft/sample
和 http://192.168.0.3:8000/snsoft/sample,确保Tomcat访问正常。
在浏览器地址栏上输入http://192.168.0.1确保HTTP启动正常。
下列方法测试HTTP与Tomcat之间连接及负载均衡正常:在浏览器地址栏上输入http://192.168.0.1/snsoft/sample,
观察页面上显示的服务器及端口号:
request.ServerName=192.168.0.2 request.ServerPort=8080
或为
request.ServerName=192.168.0.3 request.ServerPort=8080
多测试几次,如果 各服务器的出现次数 基本相当,安装成功!
修改 Tomcat 服务器上 snconfig目录下的 Config.properties:
确保使用 其中一台服务器做分号服务器 以及消息通知的设置:
MakeCodeServerURL="http://192.168.0.2:8000/snsoft" //使用192.168.0.2:8000做分号服务器,192.168.0.2:8000的Config.properties中不要设置 ClusterTableUpdated=2 ClusterHost=192.168.0.2:8000,192.168.0.3:8000 //可以不含自己部分:己192.168.0.2机器上只需192.168.0.3:8000 LoginUsersFromHostList=192.168.0.2:8000,192.168.0.3:8000
具体来讲:192.168.0.2:8000机器上的 Config.properties 加以下内容:
ClusterTableUpdated=2 ClusterHost=192.168.0.3:8000 // 多个时用逗号隔开 LoginUsersFromHostList=192.168.0.2:8000,192.168.0.3:8000
192.168.0.3:8000机器上的 Config.properties 加以下内容:
MakeCodeServerURL="http://192.168.0.2:8000/snsoft" ClusterTableUpdated=2 ClusterHost=192.168.0.2:8000 // 多个时用逗号隔开 LoginUsersFromHostList=192.168.0.2:8000,192.168.0.3:8000
将Apache的htdocs目录下的 index.html 内容改为如下内容:
<html> <head> <META http-equiv="refresh" content="0;URL=/snsoft/Login.jsp"> </head> <body></body> </html>
重启动各服务器,在浏览器地址栏上输入http://192.168.0.1登陆并使用系统
相关文章推荐
- centos服务器上java环境和tomcat部署过程以及mysql简单修改
- Linux 项目部署、系统常用命令、java环境安装、tomcat安装部署。
- 关于软件开发环境 jdk,tomcat和maven的配置以及测试
- centos6.5下java和tomcat环境部署
- 基于APR模式的Tomcat环境部署
- Linux——centos环境部署--一Tomcat安装图解
- (四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合
- <Tomcat>Tomcat出现闪退 & win10下配环境变量 & tomcat部署php项目
- web应用从开发环境自动部署至tomcat的方法
- 【Linux 操作系统】阿里云服务器 操作实战 部署C语言开发环境(vim配置,gcc) 部署J2EE网站(jdk,tomcat)
- tomcat Jenkins 上环境部署
- jenkins + maven + svn + tomcat 搭建自动构建,自动部署,持续集成环境
- Tomcat 环境部署
- 在Parallels Desktop上安装Cent OS并部署服务器环境(Linux, JDK, tomcat, mysql, Jenkins, git, maven)全记录
- Linux操作系统环境下jdk的配置和tomcat中web项目部署(从U盘中)
- Centos6.3 下使用 Tomcat-6.0.43 非root用户 jsvc模式部署 生产环境 端口80 vsftp
- 在linux环境下部署tomcat应用+配置优化(转)
- Windows环境下部署Tomcat服务器图文教程
- windows7本地部署两套Tomcat环境
- 关于软件部署环境