论坛首页· 友情链接申请·申请版主· 广告投放· 道具中心· 设为首页· 收藏本站
发新话题
打印

tomcat中的Server.xml元素详解(2)

tomcat中的Server.xml元素详解(2)

<!-- 一个“Engine”(引擎)代表处理每个请求的入口点(在Catalina内)。这个Tomcat
       的标准独立引擎实现分析包含在请求中的HTTP头信息,并将请求传送到适当的主机

       或虚拟主机上。-->
      <!-- 你应该这样设置jvmRoute以便在JK/JK2通道上支持负载平衡:

       <Engine name="Standalone" defaultHost="localhost" debug="0" jvmRoute="jvm1">
      -->

      <!-- 在我们的容器体系中定义最高级别的容器 -->
      <Engine name="Catalina" defaultHost="localhost" debug="0">

       <!-- 请求转储器值转储非常有用的通过Tomcat这个实例接收到的所有请求的,关于
        接收到的请求头和cookies,以及发送出的回应头和cookies的调试信息。如果
        你只在意一个特定的虚拟主机或者一个特定应用程序的请求,在对应的<Host>
        或<Context>入口中套用这个元素


对于所有的Servlet(小服务程序)2.4来所,在示例程序中检验

        “RequestDumperFilter”过滤是非常容易的(这个过滤器源代码可以在
        “$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters”下找到。

请求转储默认情况下是关闭的,如果要使用它,取消下面行的注释符。
-->
       <!--
        <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
       -->

       <!-- 全局日志设置,除非在更低的级别上覆盖它的设置 -->
       <Logger className="org.apache.catalina.logger.FileLogger"
        prefix="catalina_log." suffix=".txt" timestamp="true" />

       <!-- 因为这个Realm(区域)在这儿,因此这个实例将被全局共享。 -->
       <!-- 这个Realm(区域)使用在全局JNDI资源下,由“UserDatabase”配置的用户

        数据库。通过使用Realm将使对于这个用户数据库的任何编辑都将会立即可用
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
        debug="0" resourceName="UserDatabase"/>-->

       <!-- 注释掉旧有的Realm以便我们能很快速的恢复旧有配置。 -->
       <!--
        <Realm className="org.apache.catalina.realm.MemoryRealm" />
       -->

       <!-- 下面的属性用于从储存在数据库或从JDBC通道中得到的Realm以取代上面的
        Realm配置。-->
       <!--
        <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
        driverName="oracle.jdbc.driver.OracleDriver"
        c
        c c
        userTable="users" userNameCol="user_name" userCredCol="user_pass"
        userRoleTable="user_roles" roleNameCol="role_name" />
       -->

       <!--
        <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
        driverName="sun.jdbc.odbc.JdbcOdbcDriver"
        c
        userTable="users" userNameCol="user_name" userCredCol="user_pass"
        userRoleTable="user_roles" roleNameCol="role_name" />
       -->

       <!-- 定义默认的虚拟主机
        注意:XML模式确认将不能与Xerces 2.2同工作。
       -->
       <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true"
        autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

        <!--
         为这个结点定义一个群集,通过定义这个元素,意味着每个管理员都将被改变。

         因此,当运行一个群集时,只有确认在必须被聚集和移除其他的地方有你的
         web软件。
         一个群集有下面这些参数:
         className = 这个群集类的全限定名
         name = 你的群集的描述名,可以是任何描述
         debug = 调试级别,更高意味着更多的输出
         mcastAddr = 多播地址,所有的节点都必须有同样的多播地址
         mcastPort = 多播端口,对所有的节点都必须有同样的多播端口
         mcastBindAddr = 绑定多播套接字到一个指定的地址
         mcastTTL = 多播生存期,如果你想要限制你的广播的话
         mcastSoTimeout = 多播读取超时
         mcastFrequency = 发送“I'm alive”(我还活着)信息的间隔毫秒数
         mcastDropTime = 多长时间没有收到“I'm alive”就将这个节点标识为死节点(单位:毫秒)
         tcpThreadCount = 用于处理重复引入请求的线程数,最好是每个节点都有相同的线程数
         tcpListenAddress = 在有多块以太网卡的主机上的监听TCP群集请求的地址(绑定地址),auto意味着地址由InetAddress.getLocalHost().getHostAddress()取得。
         tcpListenPort = tcp监听端口
         tcpSelectorTimeout = 操作系统中有java.nio唤醒错的情况下,使用Selector.select()的超时
         毫秒数。设为0则没有超时限制
         printToScreen = true意味着管理员的相关信息也将打印输出到std.out
         expireSessionsOnShutdown = true 意味着

         useDirtyFlag = true意味着我们只能在调用setAttribute,removeAttribute后才能复制一个会话;
         false意味着在每个请求后复制会话。
         false意味着复制将以下列代码方式工作:
         <%
         HashMap map = (HashMap)session.getAttribute("map");
         map.put("key","value");
         %>

         replicationMode = 可以是“pooled”、“synchronous”或者“asynchronous”
         * Pooled意味着在多个套接字上同步进行复制。例如,先复制数据,然后请求返回。

         这与“synchronous”相同,除了它使用一个套接字池,因此,它是多线程的。它是
         最快和最高级的设置,使用这个配置也增加了处理复制的tcp线程的域。
         * Synchronous指执行请求的线程,它也是向其他节点复制数据的线程,并且直到
         所有的节点都己经收到信息后才返回。
         * Asynchronous,对每个群集节点而言,这是一个特别的“sender”(发送者)线程,
         因此请求线程将复制请求排队到一个小队列中,然后,返回给用户。
         这个小队列是一个当会话被添加到队列中,而从先前的请求中,同一个会话己经存在
         ,这个会话将被放置在队列中以代替重复的两个请求。这几乎从不会发生,除非存在
         较大的网络延迟。
        -->
        <!--
当配置群集时,你也添加一个值来捕获所有传入的请求,在请求结束时,这个会话可能被子复制,
         也可能不被复制。一个会话是否复制取决于下列条件是否发生:
         1. useDirtyFlag为真,或者setAttribute或者removeAttribute己经被调用。
         2. 会话己经存在(己经被创建了)。
         3. 请求没有被“filter”属性所捕获。

这个filter(过滤器)属性用于过滤那些不能修改会话的请求,因此,我们在这个请求结束后不复制

         会主。这个过滤器是消极的,例如,你向过滤器发送了一些东西,然后被过滤出去,在那个匹配的过
         滤器上不会发生复制。
         过滤器属性以分号为分隔,因此你不能换行,即使你想这么做。
         filter=".*\.gif;.*\.js;"意味着在进行以.gif和.js结束的URI请求后不复制会话。
        -->
         <!--
         <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
         managerClassName="org.apache.catalina.cluster.session.DeltaManager"
         expireSessi
         useDirtyFlag="true">

         <Membership
         className="org.apache.catalina.cluster.mcast.McastService"
         mcastAddr="228.0.0.4"
         mcastPort="45564"
         mcastFrequency="500"
         mcastDropTime="3000"/>

         <Receiver
         className="org.apache.catalina.cluster.tcp.ReplicationListener"
         tcpListenAddress="auto"
         tcpListenPort="4001"
         tcpSelectorTimeout="100"
         tcpThreadCount="6"/>

         <Sender
         className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
         replicati/>

         <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
         filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
         </Cluster>
        -->
        <!-- 通常,对每一个应用程序,用户必须逐个的认证他们自己。当他们遇到被

         某种安全约束所保护的资源时,如果你想让用户只在第一次被认证,那么,
         取消下面入口行的注释,然后在这个虚拟主机中包含这个用户的,横跨所有
         web应用程序的用户身份识别。-->
        <!--
         <Valve className="org.apache.catalina.authenticator.SingleSignOn"
         debug="0"/>
        -->

        <!-- 这个虚拟主机的所有请求的访问日志过程。默认情况下,日志文件被创建在相对
         于$CATALINA_HOME目录下的logs目录下。通过directory属性,你也可以指定一个
         不同的目录,如果你想的话。可以使用相对路径(相对于$CATALINA_HOME),也
         可以使用绝对路径。-->
        <!--
         <Valve className="org.apache.catalina.valves.AccessLogValve"
         directory="logs" prefix="localhost_access_log." suffix=".txt"
         pattern="common" resolveHosts="false"/>
        -->

        <!-- 与这个虚拟主机有关系所有上下文所共享的日志。默认情况下(使用FileLogger时),
         日志文件被创建在相对于$CATALINA_HOME目录下的logs目录下。如果你希望,你也可
         以给directory指定一个不同的路径。可以使用相对于$CATALINA_HOME的相对路径,也
         可以使用绝对路径。-->
        <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"
        prefix="localhost_log." suffix=".txt" timestamp="true" />

<Context path="web上下文路径" docBase="虚拟目录路径" reloadable="true" debug="0"> </Context>
       </Host>
      </Engine>
</Service>
</Server>
好好学习,天天向上!

TOP

好东西

TOP

发新话题