天天看点

apache tomcat集群详细配置

1 安装apache,我安装的版本是apache_2.0.55-win32-x86-no_ssl.msi,如果安装后能够正常开启和关闭即表示可以使用

2 下载mod_jk-1.2.8-apache-2.0.52.so,将这个文件复制到apache安装目录下的modules文件夹

3 下面开始配置集群

   a: 在apache的安装目录的conf目录下找到httpd.conf文件并打开,在文件的最下面添加以下内容

       include conf/mod_jk.conf

   b: 在conf目录下新建mod_jk.conf,并用记事本打开,并添加以下内容

      #加载mod_jk Module   

      LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.0.52.so

      #指定 workers.properties文件路径   

      JkWorkersFile conf/workers.properties   

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

      JkMountFile conf/uriworkermap.properties

      #指定jk的日志输出文件

      JkLogFile logs/mod_jk.log

     #指定日志级别

     JkLogLevel warn

      #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器   

      JkMount /* controller

   c: 在conf目录下新建workers.properties文件,并添加以下内容

    #server 列表  

worker.list = controller,tomcat1,tomcat2  

#========tomcat1========  

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

worker.tomcat1.port=8019       

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

worker.tomcat1.host=localhost  

worker.tomcat1.type=ajp13    

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

worker.tomcat1.lbfactor = 2

#========tomcat2========    

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

worker.tomcat2.port=8029      

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

worker.tomcat2.host=localhost   

worker.tomcat2.type=ajp13    

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

worker.tomcat2.lbfactor = 1

#========controller,负载均衡控制器========    

worker.controller.type=lb    

#指定分担请求的tomcat  

worker.controller.balanced_workers=tomcat1,tomcat2

#重试次数

worker.retries=3

#粘性Session(默认是打开的) 当该属性值=True(或1)时,代表Session是粘性的,

#即同一Session在集群中的同一个节点上处理,Session不跨越节点。在集群环境中,一般将该值设置为False

worker.controller.sticky_session=False

以上内容中的tomcat端口号需要根据tomcat的配置进行相应的修改,如果tomcat中的端口按照上面的配置配置的话是不需要修改的,这个后面再说。

  c: 在conif目录下新建uriworkermap.properties文件(内容为空),同时在安装目录下logs文件夹中新建mod_jk.log文件(内容为空),

    两个文件都必须要创建,否则会导致apache无法启动.

到此为止,apache的配置基本结束了,为了保险起见,建议将apache重新启动试一试,如果启动和停止正常则表示配置正确,如不能启动可能是配置有错误。

假设以上配置正确,下一步需要配置tomcat,等tomcat配置好之后,再根据目录下的workers.properties文件配置相关的端口。

--------------------------

tomcat配置

tomcat+JDK的安装就不一一介绍了,直接介绍配置集群的配置。

1  首先准备两个完全一致的tomcat,就叫tomcat1和tomcat2吧(以下内容以tomcat1的配置为主,因为两个配置都大部分一样),

   同一机器中实现集群需要使用免安装的版本的tomcat。

2  打开tomcat1目录下的conf文件夹,找到server.xml文件并打开

   将

   <Server port="8005" shutdown="SHUTDOWN">  

   改成

   <Server port="8015" shutdown="SHUTDOWN">

   同理需要修改tomcat2中的内容,可以将端口改成8025,目的是为了避免端口冲突

3  将

  <Connector port="8080" protocol="HTTP/1.1"

      connectionTimeout="20000"

      redirectPort="8443" />

  改成

     <Connector port="8081" protocol="HTTP/1.1"

          connectionTimeout="20000"

          redirectPort="8443" />

  同样修改tomcat2中的内容,端口改成8082,目的还是为了避免端口冲突

4 将

   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

   改成

  <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />

   同样修改tomcat2中的端口为8029

   在这里配置的端口需要与刚刚配置在apache中workers.properties文件里端口一致

    #========tomcat1========  

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

    worker.tomcat1.port=8019    

    #========tomcat2========    

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

    worker.tomcat2.port=8029      

以上所有修改都必须tomcat1和tomcat2同步修改,且端口不能一样。

配置到这里,集群就算是完成了,但是有一点需要说明的是,以上的配置并不能实现Session的共享,

在实际项目当中,Session必须是要实现多tomcat之间共享的。

所以,接下来我们开始配置Session共享。

同样打开tomcat目录中conf文件夹下的server.xml文件。

A、修改Engine节点信息

   将

    <Engine name="Catalina" defaultHost="localhost" >

   改成

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

   同理将tomcat2中的改为

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

B、去掉tomcat1和tomcat2中<Cluster>  <\Cluster> 的注释符

C、将以下内容添加到<Cluster>  <\Cluster>节点中,修改Cluster 节点信息

<Membership      

className="org.apache.catalina.cluster.mcast.McastService"

mcastBindAddress="127.0.0.1"

mcastAddr="224.0.0.1"

mcastPort="45564"

mcastFrequency="500"

mcastDropTime="3000"/>

<Receiver         

className="org.apache.catalina.cluster.tcp.ReplicationListener"         

tcpListenAddress="127.0.0.1"

tcpListenPort="4001"    这里一定要修改,tomcat1和tomcat2不能相同

tcpSelectorTimeout="100"

tcpThreadCount="6"/>

修改mcastBindAddress属性和tcpListenAddress属性的值为本机IP地址

修改tcpListenPort属性的值,且tomcat1和tomcat2的值不能相同,tomcat2中可设置为4002

完成以上的配置之后,apache和tomcat的配置就完成了,但是需要实现Session共享还需要最后关键的配置,需要对发布的项目进行相关的修改。

1  发布的项目中,所有需要放置在Session中的对象必须实现序列化接口

    implements java.io.Serializable

2  发布的项目中的web.xml文件中加入<distrbutable/>标签,放置在</web-app>之前即可

以上两项缺一不可,否则发布的系统会出现莫名其妙的问题,如无法登录/系统报错等等。

以上就是所有关于apache集群的所有配置。

提供两篇文章供参考:

http://blog.csdn.net/yipanbo/article/details/44079083

http://liuyu.blog.51cto.com/183345/113544/