apache+tomcat+jndi项目集群支配

apache+tomcat+jndi项目集群部署

网站需要设置负载均衡。所以我选用apache+tomcat+jk实现。

http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/

JK的下载地址,JK只是apache的一个模块,下载.so的到apache的modules文件夹内。

apache的配置主要是在httpd.conf文件里面最后添加

LoadModule jk_module modules/mod_jk-apache-2.2.4.so

#加载集群中的workers

JkWorkersFile conf/workers.properties

#加载workers的请求处理分配文件

JkMountFile conf/uriworkermap.properties

#指定jk的日志输出文件

JkLogFile logs/mod_jk.log

#指定日志级别

JkLogLevel warn

然后在httpd.conf的同目录下建立workers.properties与uriworkermap.properties两个文件

workers.properties

worker.list=controller, status

#第一个server的配置,server名为s1

#ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.s1.port=8109

#tomcat的主机地址,如不为本机,请填写ip地址

worker.s1.host=localhost

worker.s1.type=ajp13

#server的加权比重,值越高,分得的请求越多

worker.s1.lbfactor=1

#第二个server的配置,server名为s2

worker.s2.port=8209

worker.s2.host=localhost

worker.s2.type=ajp13

worker.s2.lbfactor=1

#server名为controller,用于负载均衡

worker.controller.type=lb

worker.retries=3   #重试次数

#指定分担请求的server列表,用逗号分隔

worker.controller.balanced_workers=s1,s2

#设置用于负载均衡的server的session可否共享 有不少文章说设置为1是可以的,但是我是设置为0才可以的

worker.controller.sticky_session=0

#worker.controller.sticky_session_force=1

worker.status.type=status

uriworkermap.properties

/*=controller                         #所有请求都由controller这个server处理

/jkstatus=status                   #所有包含jkstatus请求的都由status这个server处理

!/*.gif=controller                   #所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思

!/*.jpg=controller

!/*.png=controller

!/*.css=controller

!/*.js=controller

!/*.htm=controller

!/*.html=controller

这样apache的配置就完成了。。下面是配置tomcat

tomcat的普通配置不用多说。主要是由于要配置均衡负载,需要多个tomcat分别命名tomcat-node1,tomcat-node2。

如果不进行指向配置,那么每个tomcat的webapps里面都要放一个项目的编译文件,这样无疑是不科学的.所以我将项目cmi放置在d:/cmi。然后删除所有tomcat的webapps里面的文件。打开%tomcat_home%\conf\Catalina,在此目录建立一个文件夹cmi.com(名字可随意,最好是项目名),然后再在cmi.com这个文件夹里面建立一个ROOT.xml文件。

ROOT.xml

<Context distributable=”true” docBase=”D:\cmi” path=”” debug=”0″ reloadable=”false” crossContext=”true”>

  <ResourceLink global=”jdbc/cmi” name=”jdbc/cmi” type=”javax.sql.DataSource” />

</Context>

将其指向d:\cmi。顺带把jndi的名字定了。如此每个tomcat都建立一个cmi.com和ROOT.xml..

下面就需要配置tomcat的server.xml了。tomcat自带的server.xml写了很多,看着麻烦,删掉不需要的。剩下

<Server port=”8205″ shutdown=”SHUTDOWN”>

  <GlobalNamingResources>

    <Resource name=”jdbc/cmi” auth=”Container” type=”javax.sql.DataSource” maxActive=”3″ maxIdle=”2″ maxWait=”10000″ username=”XXXX” password=”XXXX” driverClassName=”oracle.jdbc.OracleDriver” url=”jdbc:oracle:thin:@XXX.XX.XX.XXX:XXXX:chinadb” />

  </GlobalNamingResources>

  <Service name=”Catalina”>

    <Connector port=”8280″ protocol=”HTTP/1.1″

               connectionTimeout=”20000″

               redirectPort=”8243″ />

    <Connector port=”8209″ protocol=”AJP/1.3″ redirectPort=”8243″ />

    <Engine name=”Catalina” defaultHost=”cmi.com” jvmRoute=”s2″>

      <Cluster className=”org.apache.catalina.ha.tcp.SimpleTcpCluster”/>   

      <Host name=”cmi.com”  appBase=”webapps”

&nb

apache+tomcat+jndi项目集群支配

相关文章:

你感兴趣的文章:

标签云: