tomcat server.xml详解

tomcat配置文件结构:

<Server>
  <Listener />
  <GlobaNamingResources>
  </GlobaNamingResources
  <Service>
    <Connector />
    <Engine>
      <Logger />
      <Realm />
        <host>
          <Logger />
          <Context />
        </host>
    </Engine>
  </Service>
</Server>

<server>元素代表一个完整的容器。它的port属性指定监听关闭该tomcat的请求端口;shutdown属性指定向端口发送的命令字符串;

<service>元素由org.apache.catalina.Service接口定义,它包含一个<Engine>元素,以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素;

<Connector>元素代表与客户程序实际交互的给件,它负责接收客户请求,以及向客户返回响应结果.

它的port属性指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求;protocol:指定监听的请求协议;

redirectPort:指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号;

Engine元素(表示指定service中的请求处理机,接收和处理来自Connector的请求)
defaultHost属性:指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的;

Valve元素功能与Logger差不多都用来指定记录应用程序的访问信息;其中prefix和suffix指定log文件的前缀和后缀名;

pattern属性有两个值表示两种方式,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多。

directory用于指定存放log文件的地址;

<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
  <Resource name="UserDatabase" auth="Container"
      type="org.apache.catalina.UserDatabase"
      description="User database that can be updated and saved"
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
      pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
  <Connector port="8080" protocol="HTTP/1.1"
      connectionTimeout="20000"
      redirectPort="8443" 
    URIEncoding="UTF-8"
    useBodyEncodingForURI="true"/>
  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
  <Engine name="Catalina" defaultHost="localhost">
    <Realm className="org.apache.catalina.realm.LockOutRealm">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
        resourceName="UserDatabase"/>
    </Realm>
    <Host name="localhost" appBase="webapps"
    unpackWARs="true" autoDeploy="true">
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
      prefix="localhost_access_log." suffix=".txt"
      pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
  </Engine>
</Service>
</Server>

上面是我本机的tomcat设置,可以看到,它定义8005端口监听shutdown请求,在定义的service内定义了两个connector,一个是8080端口负责监听http协议,一个是8009端口,负责监听AJP协议,也就是其它apache服务器转发过来的请求;定义的默认host为本机,它会在webapps文件夹下寻找资源进行返回。log打印定义的文件夹为logs,文件名为localhost_access_log.txt,它的打印格式由pattern定义。

具体参考网址: http://www.blogjava.net/baoyaer/articles/107278.html

原文地址:https://www.cnblogs.com/userrain/p/5440783.html