apache tomcat集群详细配置

来源:互联网 发布:软考初级程序员答案 编辑:程序博客网 时间:2024/05/19 17:03
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/

0 0
原创粉丝点击