记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
 
0

Tomcat配置参数详解

发表者:admin分类:应用服务2019-07-25 09:37:06 阅读[1038]
下面是tomcat-8.5.37原生server.xml配置,删除了所有自有注释

Connector主要属性:

    protocol  监听的协议,默认是http/1.1
    port   连接端口号
    minThread  初始化线程数
    maxThread  最大线程数,生产配置800-1000
    minSpareThreads="100" 最大空闲线程
    enableLookups="false"  如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址,生产环境建议设置false
    redirectPort  指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
    acceptCount="800"  指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,相当于多线程的队列
    connectionTimeout  指定超时的时间数(以毫秒为单位)
    SSLEnabled  是否开启 sll 验证,在Https 访问时需要开启
    URIEncoding="UTF-8"
     useBodyEncodingForURI="true"
     compression="on"
    compressionMinSize="2048"

    compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css,application/x-json,application/json,application/x-javascript"

    <?xml version="1.0" encoding="UTF-8"?>
    <!--8005用来执行shutdown命令,只能被127.0.0.1使用-->
    <Server port="8005" shutdown="SHUTDOWN">
      <!--Listener(监听器),类似于webx.xml中的配置-->
      <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <!--防止内存溢出-->
      <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 接收用户请求转化为Request-->
        <!--protocol协议版本-->
        <!--redirectPort=https重定向端口,此时8443端口要有对应的Connector-->
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        <!--AJP协议=Apache与tomcat进行反向代理的私有协议,注:AJP是二进制协议,http是文本协议
        这个端口用不到的,此项配置可以注释,省一个端口-->
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
        
        <!--Engine(引擎)用来处理请求,根据域名分发到Host,当没有域名可以区分Host的时候默认分发到
        defaultHost(localhost),
        defaultHost相当于nginx中的defaultServer-->
        <Engine name="Catalina" defaultHost="localhost">
          <Realm className="org.apache.catalina.realm.LockOutRealm">
            <!--Realm(领域) 把资源注册到Engine
            UserDatabase=tomcat-users.xml-->
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>
          </Realm>
          <!--Host(虚拟机)
          appBase应用的相对路径
          unpackWARs自动解压war包
          autoDeploy自动部署-->
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <!--Valve(阀门),相当于过滤器,此处配置用于打印日志,可用于IP过滤、限流 -->
            <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>

自定义配置

    <?xml version="1.0" encoding="UTF-8"?>
    <!--8005用来执行shutdown命令,只能被127.0.0.1使用
         可以删除port和shutdown配置-->
    <Server port="8005" shutdown="SHUTDOWN">
      <!--Listener(监听器),类似于webx.xml中的配置-->
      <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <!--防止内存溢出-->
      <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 接收用户请求转化为Request
                 protocol协议版本
            redirectPort=https重定向端口,此时8443端口要有对应的Connector
            https默认端口443-->
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443"                 
                    />
        <Connector port="80" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443"                 
                   minSpareThreads="200"                       
                   maxThread="1000"
                   acceptCount="1000"
                   enableLookups="false"
                   URIEncoding="UTF-8"
                   useBodyEncodingForURI="true"
                   compression="on"
                   ompressionMinSize="2048"
                   compressableMimeType="text/html,text/xml,text/plain,
                   text/javascript,text/css,application/x-json,
                   application/json,application/x-javascript"            
                   />
        <!--AJP协议=Apache与tomcat进行反向代理的私有协议,注:AJP是二进制协议,http是文本协议
                    这个端口用不到的,此项配置可以注释,省一个端口-->
        <!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />-->
     
            <!--Engine(引擎)用来处理请求,当没有域名可以区分Host的时候默认分发到defaultHost(localhost),
                    defaultHost相当于nginx中的defaultServer-->
        <Engine name="Catalina" defaultHost="localhost">
          <Realm className="org.apache.catalina.realm.LockOutRealm">
                <!--Realm(领域) 把资源注册到Engine
                                    UserDatabase=tomcat-users.xml-->
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>
          </Realm>
          <!--Host(虚拟机)
                      appBase应用的相对路径
              unpackWARs自动解压war包
              autoDeploy自动部署-->
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
                    <!--Valve(阀门),相当于过滤器,此处配置用于打印日志,可用于IP过滤、限流 -->
            <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>
     
           <Host name="www.testtomcat.com"  appBase="/test/tomcat"
                unpackWARs="true" autoDeploy="true">
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="test_tomcat_access_log" suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
           <Context path="/a" docBase="hello" reloadable="true"/>
          </Host>
     
        </Engine>
      </Service>
    </Server>

另外可以在conf/域名/ROOT.xml进行配置



转载请标明出处【Tomcat配置参数详解】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论