TRSWCM65集群部署手册.docx
《TRSWCM65集群部署手册.docx》由会员分享,可在线阅读,更多相关《TRSWCM65集群部署手册.docx(20页珍藏版)》请在冰豆网上搜索。
TRSWCM65集群部署手册
内容协作平台
TRSWCM6.5
集群部署手册
北京拓尔思信息技术股份有限公司
BeijingTRSInformationTechnologyCo.Ltd
版权说明
本手册由北京拓尔思信息技术股份有限公司(以下简称TRS公司)出版,版权属TRS公司所有。
未经出版者正式书面许可,不得以任何方式复制本文档的部分或全部内容。
©北京拓尔思信息技术股份有限公司版权所有。
保留所有权利。
是北京拓尔思信息技术股份有限公司的注册商标。
关于本手册
本手册描述了WCM集群应用的优点与部署拓扑结构,并通过实例说明如何设置nfs完成文件共享及apache进行负载均衡。
文档最后简略说明了集群相应设置的所有参数的意义与作用。
按照本手册的说明,应该可以完成集群环境的部署与安装。
不过,环境条件有限,另外一些负载均衡设备的配置肯定会有所不同,这个需要参阅其它相应的手册完成部署设置。
读者对象
本手册适用于所有需要了解实施部署安装WCM集群的工程师。
有相关的Linux操作系统管理经验对一些描述的理解会有所帮助。
用户反馈
TRS公司感谢您使用TRS产品。
如果您发现本手册中有错误或者产品运行不正确,或者您对本手册有任何意见和建议,请及时与TRS公司联系。
您的意见将是我们做版本修订时的重要依据。
目录
第1章WCM集群带来的改变1
1.1伸缩性(Scalability)1
1.2高可用性(Highavailability)1
1.3负载均衡(Loadbalancing)1
第2章WCM集群部署拓扑2
第3章实际部署示例5
3.1文件服务器5
3.2负载均衡6
3.3静态文件发布设置8
3.4一个完整的vhost设置示例9
3.5验证部署13
第4章单机模式设置为集群模式的步骤15
第5章WCM中的集群设置17
5.1trswcmcluster.properties设置17
5.2数据库中的设置17
第1章WCM集群带来的改变
1.1伸缩性(Scalability)
在一些系统中,预测最终用户的数量和行为是非常困难的,伸缩性是指系统适应不断增长的用户数的能力。
提高这种并发会话能力的一种最直观的方式就增加资源(CPU、内存、硬盘等),集群是解决这个问题的另一种方式,它允许一组服务器组合工作在一起,像单个服务器一样对外提供服务。
集群中的每一个服务器我们称之为一个节点。
1.2高可用性(Highavailability)
单一服务器的解决方案并不是一个健壮方式,因为容易出现单点失效的情况,当有且仅有的一个服务器不能提供服务时,整个系统就不可用了。
集群方案通过在集群中增加的冗余的服务器,使得在其中一台服务器失效后仍能提供服务,从而获得高的可用性。
1.3负载均衡(Loadbalancing)
负载均衡是集群的一项关键技术,通过把请求分发给不同的服务器,从而获得高可用性和较好的性能。
负载均衡器可以是专用的硬件(如F5设备),也可以是一个带有负载均衡功能的应用/WEB服务器。
WCM集群是应用级的集群解决方案,不包含负载均衡功能,因此需要前端设施的支持。
第2章WCM集群部署拓扑
图1显示了一个简化后的典型的WCM集群部署拓扑结构。
用户通过Internet/Intranet接入系统,负载均衡器按照既有的算法把用户请求转发到有效的服务器节点上,然后由该节点为用户提供实际的服务。
在WCM中,除了存储在关系数据库的信息外,大部分文件都存储在本地文件中,在集群环境中,不同的节点访问的应该是同一个文件,因此需要一个文件服务器(共享存储设备)。
图1WCM集群部署拓扑图
集群的各个节点需要稳定可靠的网络通信以确保各个节点间的信息是一致的,这样才能保证给用户提供的服务是正确可靠的,因此,我们建议包括文件服务器,数据库服务器,集群服务器在内的后端服务器都通过一个私有专用的子网互联,避免外部网络的干扰。
第3章实际部署示例
条件所限,没有实际的硬件设施可供测试配置,文件服务器我们通过nfs处理,而负载均衡则采用apache的负载均衡方案进行说明。
实际项目中有其它设备的参考相应的手册处理。
本章除了说明nfs及apache负载均衡的相关设置外,给出一个完整的apache设置示例内容,并简单介绍了验证部署的两个方法和步骤。
3.1文件服务器
WCMData目录中的资源文件是所有节点的共享的内容,没有网络存储的情况下,我们目前使用网络共享来达到目的。
Windows操作系统的映射网络磁盘工作不作详细说明,下面的步骤说明Linux操作系统NFS共享设置。
server端
通过设置/etc/exports文件来配置共享的目录,设置格式如下:
/path/to/sharehost1(options)
/path/to/share是要共享的目录,每个目录一行,后面host1(options)表示一个可访问该目录的一个客户主机,host1可以是主机名,IP地址等,可以使用*做通配符options是一系列权限相关的设置,在我们这里,必须是可读写权限。
关于exportsfile的详细说明请查阅Linux相关的文档。
示例设置如下(建议的options设置):
/exports/WCMData192.9.100.*(rw,fsid=6666,sync,no_subtree_check,no_root_squash))
设置后,可以通过exportfs命令使用设置生效,在这之前要确认nfsserver已经启动。
[root@testroot]#/etc/rc.d/init.d/nfsstart
[root@testroot]#exportfs-rv
client端
客户端只要使用mount命令把文件挂载进来即可
[root@testroot]#mount–tnfs:
/path/to/share/mount/point
其中的即是上面设置了共享的服务主机(名称/IP均可),/path/to/share是共享的目录,/mount/point是本机的挂载点。
在wcm集群中,节点上的挂载点应该有相同的路径及名称。
示例:
[root@testroot]#makedir–p/mnt/nfs/WCMData
[root@testroot]#mount–tnfs192.9.200.41:
/exports/WCMData
\/mnt/nfs/WCMData
3.2负载均衡
集群节点协同工作以后,需要将客户端的请求分发到各节点上。
目前我们使用apache做为前端负载均衡的转发器。
考虑到jk的稳定性,我们建议使用代理模式协同工作。
因此,安装的apache需要有mod_proxy,mod_rewrite,及mod_proxy_balancer等模块。
主要设置如下:
#section1设置负载均衡的成员
//wcmcluster>
BalancerMemberhttp:
//192.9.100.234:
8080route=m234
BalancerMemberhttp:
//192.9.100.216:
8080route=m216
BalancerMemberhttp:
//192.9.100.217:
8080route=m217
#ProxySetstickysession=CSID
#section2设置转发规则,只有动态请求才转发到应用服务器
RewriteEngineon
RewriteRule^/wcm/(.*\.(jsp|do|jws))$balancer:
//wcmcluster/wcm/$1[P,L]
RewriteRule^/wcm/(.*;jsessionid.*)$balancer:
//wcmcluster/wcm/$1[P,L]
RewriteRule^/wcm/app/application/(.*)
balancer:
//wcmcluster/wcm/app/application/$1[P,L]
RewriteRule^/wcm/servicesbalancer:
//wcmcluster/wcm/services[P,L]
RewriteRule^/servletbalancer:
//wcmcluster/servlet[P,L]
RewriteRule^/wcm/console/publish/publishtask_show.jsp
http:
//192.9.100.217:
8080/wcm/console/publish/publishtask_show.jsp[P,L]
#section3转发规则,反向代理模式转发到应用服务器
#ProxyPassReverse/balancer:
//wcmcluster
ProxyPassReverse/http:
//192.9.100.234:
8080/
ProxyPassReverse/http:
//192.9.100.216:
8080/
ProxyPassReverse/http:
//192.9.100.217:
8080/
#section4apache均衡管理器
SetHandlerbalancer-manager
#Denyfromall
#设定可以访问管理器的主机
Allowfrom192.9.200.88
注意事项
1.route与stickysession
会话固定是负载均衡器的一个重要功能,其作用是把用户会话固定在一个服务节点上,当且仅当该节点失效时才会将会话转发到其它节点处理。
这两项的设置与wcm中的设置也有关系,下面会再说到
2.publishtask_show
目前发布任务只会在集群的主节点执行,因此查看正在执行的发布任务的详细信息时只有主节点能够提供服务。
主节点的确定也与wcm中的设置有关。
3.3静态文件发布设置
前面负载均衡一节说明了通过proxy,urlrewrite等规则设置,将jsp等动态请求转发到各节点的应用服务器,wcm其它的静态文件(包括图片,html,js,css等资源)都通过apache直接响应请求输出到服务器端。
另外,WCMData对外提供服务的webpic,pub,preview,template等四个目录的静态资源(一般情况下,这些目录也只应该有静态资源)也是通过apache直接服务。
该设置通过alias和directory指令完成,示例下如所示。
其中的/path/to/xxx替换为实现的文件路径。
Alias/webpic"/path/to/TRSWCMV65/WCMData/webpic"#设置webpic
Options-IndexesMultiViewsFollowSymLinksIncludes
AllowOverrideNone
Orderallow,deny
Allowfromall
#按照webpic的形式设置pub,preview,template等其它三个目录
Alias/wcm"/path/to/TRSWCMV65/webapps/wcm"#设置wcm
Options-IndexesMultiViewsFollowSymLinksIncludes
DirectoryIndexindex.html
AllowOverrideNone
Orderallow,deny
Allowfromall
3.4完整的vhost设置示例
下面给出一个完整的两个节点的集群的virtualhost的示例设置,一般来说,只要替换其中的具体IP及相关目录的路径即可完成配置。
如果多于两个节点,则是在proxy节处加入BalancerMember并在后面的ProxyPassReverse节加入新的节点即可
80>
AddTypetext/javascript.js
AddTypetext/css;.css
AddTypetext/html;charset=UTF-8.html
ServerName192.9.200.88
ServerAdminwebmaster@
//wcmcluster>
BalancerMemberhttp:
//192.9.200.216:
6666route=m216
BalancerMemberhttp:
//192.9.200.241:
9999route=m241
#ProxySetstickysession=CSID
RewriteEngineon
RewriteRule^/wcm/(.*\.(jsp|do|jws))$balancer:
//wcmcluster/wcm/$1[P,L]
RewriteRule^/wcm/(.*;jsessionid.*)$balancer:
//wcmcluster/wcm/$1[P,L]
RewriteRule
^/wcm/app/application/(.*)balancer:
//wcmcluster/wcm/app/application/$1[P,L]
RewriteRule
^/wcm/servicesbalancer:
//wcmcluster/wcm/services[P,L]
RewriteRule
^/wcm/stat/cewolfbalancer:
//wcmcluster/wcm/stat/cewolf[P,L]
RewriteRule^/wcm/console/stat/cewolf(.*)balancer:
//wcmcluster/wcm/console/stat/cewolf$1[P,L]
RewriteRule^/servletbalancer:
//wcmcluster/servlet[P,L]
RewriteRule^/wcm/console/publish/publishtask_show.jsphttp:
//192.9.200.241:
9999/wcm/console/publish/publishtask_show.jsp[P,L]
#ProxyPassReverse/balancer:
//wcmcluster
ProxyPassReverse/http:
//192.9.200.216:
6666/
ProxyPassReverse/http:
//192.9.200.241:
9999/
Alias/webpic"/home/trs/TRSWCMV65/WCMData/webpic"
Options-IndexesMultiViewsFollowSymLinksIncludes
AllowOverrideNone
Orderallow,deny
Allowfromall
Alias/pub"/home/trs/TRSWCMV65/WCMData/pub"
Options-IndexesMultiViewsFollowSymLinksIncludes
AllowOverrideNone
Orderallow,deny
Allowfromall
Alias/preview"/home/trs/TRSWCMV65/WCMData/preview"
Options-IndexesMultiViewsFollowSymLinksIncludes
AllowOverrideNone
Orderallow,deny
Allowfromall
Alias/template"/home/trs/TRSWCMV65/WCMData/template"
Options-IndexesMultiViewsFollowSymLinksIncludes
AllowOverrideNone
Orderallow,deny
Allowfromall
Alias/wcm"/home/trs/TRSWCMV65/webapps/wcm"
Options-IndexesMultiViewsFollowSymLinksIncludes
DirectoryIndexindex.html
AllowOverrideNone
Orderallow,deny
Allowfromall
SetHandlerbalancer-manager
#Denyfromall
Allowfrom192.9.200.88
#Allowfromall
注意:
示例中的一些换行可能是文档排版需要,在实际设置时要注意每一条RewriteRule都是一行
3.5验证部署
设置完成后,可以通过以下几个步骤确认一下相关的配置是否正确。
1.访问wcmcluster-manager,将可以看到apache负载均衡所设置的相关节点的信息。
如下图所示
2.访问wcm登录后访问wcm/wcm_use/get_managermember.jsp将可以看到WCM相应的几个集群节点的信息。
如下图所示,可以看到两个节点
第4章WCM集群与IDS协同
本章说明WCM集群与IDS协同的注意事项,基本的协同设置与步骤查阅相关的文档。
4.1web.xml的设置
与IDS协同时,需要在wcm应用的web.xml加入SSOFilter等设置。
与单机协同设置不同的是必须将IDS的相关设置放在ClusterSessionFilter的设置之后。
4.2Apache与JK设置
由于目前IDS对于反向代理模式的协同支持尚不完善,因此需要设置Apache以JK的方式与应用服务器协同工作。
对于静态文件的设置仍然可以使用前面所说的方式进行设置,本节只说明不同的部分
4.2.1
#加载mod_jkModule
LoadModulejk_modulemodules/mod_jk.so
#指定wcmbalancer.properties文件路径。
一般该配置文件部署在apache的conf目录
JkWorkersFileconf/wcmbalancer.properties
80>
#指定那些请求交给tomcat处理
JkMount/wcm/serviceswcmbalancer
JkMount/*.jspwcmbalancer
JkMount/*.dowcmbalancer
JkMount/wcm/app/application/*wcmbalancer
apache设置
4.2.2wcmbalancer.properties设置
#server列表.mxxx是节点的名字,有多少个节点就设置几个
worker.list=wcmbalancer,m241,m216
#ajp13端口号,在tomcat下server.xml配置,默认8009
#tomcat的主机地址,如不为本机,请填写ip地址
#server的加权比重,值越高,分得的请求越多。
#可以将主节点的比重设置为小一点的值
#========m241========
worker.m241.port=8009
worker.m241.host=192.9.200.241
worker.m241.type=ajp13
worker.m241.lbfactor=2
#========m216========
worker.m216.port=8009
worker.m216.host=192.9.200.216
worker.m216.type=ajp13
worker.m216.lbfactor=3
#========wcmbalancer,负载均衡控制器========
worker.wcmbalancer.type=lb
worker.wcmbalancer.balance_workers=m241,m216
worker.wcmbalancer.sticky_session=0#IDS对sticksession支持不完善
4.3IDS的设置
在IDS中将应用地址与请求地址设置为apache的地址,如图所示。
另外,需要注意的是wcm应用中的trsids-agent.properties的设置在各个节点是一样的。
第5章单机模式设置为集群模式的步骤
由于项目实施部署时的一些原因,有时可能会是首先部署了一个wcm运行在单机模式(非集群),然后随着项目的进展与推移最终需要部署为集群模式的的情况。
本章主要说明的是wcm端的设置,其中的提到的一些参数的具体说明参见下一章的内容。
而apache等的设置参见前面的章节的内容。
1.修改/path/to/wcm/WEB-INF/classes/trswcmcluster.properties
a)设置cluster.enabled项的值为true
b)设置集群节点间通讯的IP地址,一般建议节点间的网络通讯使用独立的子网,以保证节点间集群消息同步的畅通不受其它消息的干扰。
相关的参数是cluster.multicastBind,cluster.tcpListenAddress及
cluster.udpListenAddress三个。
如果只有一块网卡可以保留默认的值(auto)