zoukankan      html  css  js  c++  java
  • Tomcat6+IIS6集成及Tomcat负载均衡与Tomcat集群配置

    一、环境说明。

     1、硬件环境:一台服务器,运行2个Tomcat实例。

     2、软件环境:Windows Server2003 企业版 + IIS6 + Tomcat6 (解压版) + JDK6 + JK1.2.28(iis用的是isapi_redirect-1.2.28.dll )

    二、Tomcat6的负载均衡配置

     1、将tomcat解压到2个不同的目录,如:D:\server\tomcat-node1, D:\server\tomcat-node2。

     2、修改D:\server\tomcat-node1\conf\server.xml文件,

    找到:

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

    修改为:

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

    找到:

        <Connector port="8080  protocol="HTTP/1.1" 
    connectionTimeout="20000"
    redirectPort="8443" />

    修改为:

        <Connector port="8081" protocol="HTTP/1.1" 
    connectionTimeout="20000"
    redirectPort="8443" />

    找到:

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

    修改为:

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

     找到:

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

     修改为:

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

     

    按照同样方法,修改D:\server\tomcat-node2\conf\server.xml文件 ,修改结果如下:

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

    <Connector port="8082" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

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

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

    启动2个tomcat,确认2个tomcat都启动成功。

    注: 因为要启动2个Tomcat,所以不能设置CATALINA_HOME。

     

    3、修改D:\server\tomcat-node1\conf\workers.properties文件(如果没有就创建该文件),在文件中写入:

    # The advanced router LB worker
    worker.list=router

    # Define a worker using ajp13
    worker.node1.port=8010
    worker.node1.host=localhost
    worker.node1.type=ajp13
    worker.node1.lbfactor=1

    # Define another worker using ajp13
    worker.node2.port=8011
    worker.node2.host=localhost
    worker.node2.type=ajp13
    worker.node2.lbfactor=1

    # Define the LB worker
    worker.router.type=lb
    worker.router.balance_workers=node1,node2
    worker.router.sticky_session=False #在集群环境中,将该值设置为False。
     

     保存文件。

    4、启动2个Tomcat,确认启动成功。完成Tomcat的负载均衡配置。

     

    三、Tomcat6+IIS6集成配置

    1、修改配置文件D:\server\tomcat-node1\conf\workers.properties,在该文件中增加如下配置:

     

    workers.tomcat_home=D:\server\tomcat-node1
    workers.java_home=C:\Program Files\Java\jdk1.6.0
    ps=\

        保存。

     2、增加D:\server\tomcat-node1\conf\uriworkermap.properties,在该文件中配置的映射路径,如:

    /*=router    该值要与workers.properties中的worker.list=router中的值相等






     3、增加注册表文件isapi_redirect.reg,在该文件中写入:

     

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
    "log_file"="D:\\logs\\isapi.log"
    "log_level"="error"
    "worker_file"="D:\\server\\tomcat-node1\\conf\\workers.properties"
    "worker_mount_file"="D:\\server\\tomcat-node1\\conf\\uriworkermap.properties"
    "tomcat_start"="D:\\server\\tomcat-node1\\bin\\startup.bat"
    "tomcat_stop"="D:\\server\\tomcat-node1\\bin\\shutdown.bat"
    "extension_uri"="/jakarta/isapi_redirect-1.2.28.dll"

     保存该文件后,双击运行该文件,将注册信息导入到注册表。

    4、将下载来的jk文件:isapi_redirect-1.2.28.dll 复制到D:\server\tomcat-node1\conf\目录下。

     

    5、打开IIS信息管理器,配置IIS,本文以默认网站为例。右键点击默认网站,选择“属性”,打开属性对话框。

      在“ISAPI筛选器”标签页中,点击“添加”按钮,定义筛选器名称为:jakarta,可执行文件为:D:\server\tomcat-node1 \conf\isapi_redirect-1.2.28.dll。操作完成后,点击“应用”按钮。关闭属性页,然后再打开属性页,切换到“ISAPI筛 选器”标签页,如果状态为绿色向上箭头,优先级为高,则代表筛选器配置成功。

     

    6、打开默认网站的属性页,在“主目录”标签页中,将本地路径映射到“D:\server\tomcat-node1\webapps”目录,点击确定。

    7、在“默认网站”上点击右键,选择“新建”->“新建虚拟目录...”,在弹出的对话框中点击“下一步”,填写别名为“jakarta”,点击 “下一步”,将路径设置为:D:\server\tomcat-node1\conf,再点击“下一步”,勾选“执行(如:ISAPI应用程序或 CGI)”,点击“下一步”,再点击“完成”。完成jk的虚拟目录配置。

     

    8、新增“web服务器扩展”,扩展名随意取,如:Tomcat。在要求的文件中,添加D:\server\tomcat-node1\conf\isapi_redirect-1.2.28.dll文件,勾选“设置扩展状态为允许”。

     

    9、完成整个配置。

     

    10、重启IIS,Tomcat-node1,Tomcat-node2。在D:\server\tomcat-node1\webapps\ROOT\目录下,新建“test.jsp”文件,代码:

    <%@ page import="java.util.*" %>

    <%=new Date()%>
    <% System.out.println("负载均衡了");%>

       并将test.jsp复制一份到: D:\server\tomcat-node2\webapps\ROOT\目录下。

     

    11、打开浏览器,输入:http://localhost/test.jsp,如果能看到当前时间,那么恭喜你,iis+tomcat配置成功。

    刷新页面,刷新页面,会在2个Tomcat的控制台看到:“负载均衡了”字样。表明负载均衡配置成功。

     

    12、Tomcat集群配置,进行全局的Session复制。

    a)   修改2个节点的server.xml文件,找到

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

      去掉该行上下的<!-- -->注释。

    使用默认的配置,会调用DeltaManager 进行Session复制,该类会将任何一个节点中添加的Session,同步复制到集群中其他的节点上。针对少量节点的集群,可以直接使用默认配置。

    注:官网的集群的详细配置代码如下:

          <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
    channelSendOptions="6">

    <!--<Manager className="org.apache.catalina.ha.session.BackupManager"
    expireSessionsOnShutdown="false"
    notifyListenersOnReplication="true"
    mapSendOptions="6"/>-->

    <Manager className="org.apache.catalina.ha.session.DeltaManager"
    expireSessionsOnShutdown="false"
    notifyListenersOnReplication="true"/>

    <Channel className="org.apache.catalina.tribes.group.GroupChannel">
    <Membership className="org.apache.catalina.tribes.membership.McastService"
    address="228.0.0.4"
    port="45564"
    frequency="500"
    dropTime="3000"/>
    <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
    address="auto"
    port="5000"
    selectorTimeout="100"
    maxThreads="6"/>

    <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
    <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
    </Sender>
    <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
    <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
    <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
    </Channel>

    <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
    filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>


    <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
    </Cluster>

     需要去掉:

     

              <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
    tempDir="/tmp/war-temp/"
    deployDir="/tmp/war-deploy/"
    watchDir="/tmp/war-listen/"
    watchEnabled="false"/>

     如果加上该部分配置,会出现:严重: FarmWarDeployer can only work as host cluster subelement! 错误。

     

    b)   修改需要Session复制的应用中WEB-INF/web.xml文件,在文件中的<web-app>标签中增加:

    <distributable/>

     在应用的web.xml中增加上述配置后,就表示该应用需要进行Session复制。

     

    c)  配置Tomcat集群后,需要注意workers.properties中的sticky_session属性,在上述的workers.propeties文件中最后增加如下配置:

    worker.router.sticky_session=True

       当该属性值=True(或1)时,代表Session是粘性的,即同一Session在集群中的同一个节点上处理,Session不跨越节点。

      在集群环境中,一般将该值设置为False。官方说明如下:

    Set sticky_session to False when Tomcat is using a Session Manager which can persist session data across 
    multiple instances of Tomcat.

     

    备注:如果ISAPI筛选器显示为红色向下箭头,以及“未加载”状态,分2步检查:

    1、右键点击站点,选择“浏览”站点。让IIS加载筛选器。如果不成功,进入第二步。

    2、更改isapi_redirect-1.2.28.dll文件的权限,之后给予这个文件EveryOne的读取+写入+执行的权限。

    解决问题。

  • 相关阅读:
    上班不再能上msn了
    小龟不用冬眠了
    Sonne学摄影(3)上海汽车展汽车
    新年提醒银行卡的用户注意了
    转贴:49届世乒赛海外名将介绍究竟谁会对中国队构成威胁??
    用两个词形容现在的生活:忙碌,充实
    终于加入胖友一族
    上海人
    相互残杀
    王励勤,好样的!看49届世乒赛男单决赛
  • 原文地址:https://www.cnblogs.com/top5/p/1589872.html
Copyright © 2011-2022 走看看