Tomcat配置详解

下面是tomcat-8.5.37原生server.xml配置,删除了所有自有注释

Connector主要属性:

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值