Tomcat -- server.xml

Tomcat 部署项目 server.xml 配置

<Server port="8005" shutdown="SHUTDOWN">
  <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">
    <!--线程池-->
    <Executor 
        name="myThreadPool" 
        namePrefix="catalina-exec-"
        maxThreads="200"
        minSpareThreads="10"/>

    <!--连接池-->
	<Connector port="9999"
		protocol="HTTP/1.1"
        acceptCount="200"
	    connectionTimeout="20000"
        executor = "myThreadPool"
	    disableUploadTimeout="true"
	    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>
    
  <Context path="/expert" docBase="expert" debug="0" reloadable="false"></Context>
</Server>
tomcat使用Acceptor线程专门负责从Accept队列中取出connection,接受该connection,然后交给工作线程去处理(读取请求参数、处理逻辑、返回响应等等);
如果该连接不是keep alived的话,则关闭该连接,然后该工作线程释放回线程池,
如果是keep alived的话,则等待下一个数据包的到来直到keepAliveTimeout,然后关闭该连接释放回线程池;
然后Acceptor线程接着去accept队列取connection;

1. Tomcat能处理的最大请求数由maxConnections和acceptCount决定;
Executor
###线程池,这些属性也可直接配置到连接池(Connector), 优先使用Executor;
# 连接器同一个时刻最大的工作线程数,可以处理的最大并发请求数(tomcat真正并发数)
# maxThreads数量应该远大于CPU核心数量(不宜过大,否则cpu切换线程时间偏大);
# 线程数的经验值为:1核2g -- 200;4核8g —— 800。
maxThreads="200"
# 最小空闲线程数,预先创建,默认10;
# maxThreads/10 左右;
minSpareThreads="10"
#maxSpareThreads="50"

# 早期的tomcat 5.0之前的配置
# minProcessors="5"
# maxProcessors="300"
Connector
# http端口,默认8080
port="8080"
# 使用何种方式来接受和处理client端请求, def "HTTP/1.1", ["AJP/1.3"]
protocol="HTTP/1.1"

###连接池
# 已建立的可处理连接队列数,可无空闲处理线程时,请求队列(排队)最大长度,超出请求会被拒绝处理,默认100;
# 当前同时连接数超过maxConnections的时候,还可接受的连接数;
# 一般是设置跟 max-threads 一样大;
acceptCount="200"
# http连接超时,当client与tomcat建立连接,"cto"时间后,仍然没有得到client的请求数据,此时连接将会被断开, 默认60000, -1无超时,(Tomcat的标准server.xml中,设置为20000);
connectionTimeout="20000"

# 表示最多可以有多少个socket连接到tomcat上,Acceptor能同时接受的最大连接数,超出时,服务器将接收一个连接但是不处理(被阻塞),NIO的默认值是10000,APR/native的默认值是8192,而BIO的默认值为maxThreads;
max-connections="10000"

# 容许Servlet容器,正在执行使用一个较长的链接超时值,以使Servlet有较长的时间来完成它的执行,默认值为false
disableUploadTimeout="true"
# https端口
redirectPort="8443"


############ 可忽略属性 #########
# 默认2M,小于0没有限制应该被强制执行;
max-swallow-size
# http请求中header的最大个数,默认100,"-1"表示不限制;
maxHeaderCount
# http-get请求中允许传递的查询字符串的最大个数,默认10000,"-1"表示无限制;
maxParameterCount
# http-post请求中数据(body)的最大尺寸,单位:byte,默认2M;
maxPostSize
# http-get请求中,使用何种字符集对查询字符串进行编码,默认"iso-8859-1",["UTF-8"];
URIEncoding
# 是否对http相应数据启用Gzip压缩,可选值为"off"或者"on";
compression
查看Tomcat版本:
1. 打开tomcat路径下的lib文件夹,找到catalina.jar 用解压工具打开,找到:MANIFEST.MF;
2. cmd, 进入tomcat路径bin目录(若配置了环境变量可忽略),输入catalina + enter, 再输入version + enter;

相关推荐

  1. Tomcat

    2024-02-02 09:32:02       30 阅读
  2. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-02-02 09:32:02      29 阅读
  3. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-02-02 09:32:02      36 阅读
  4. Tomcat

    2024-02-02 09:32:02       38 阅读
  5. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-02-02 09:32:02      30 阅读
  6. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-02-02 09:32:02      33 阅读
  7. Tomcat

    2024-02-02 09:32:02       28 阅读
  8. <span style='color:red;'>tomcat</span>

    tomcat

    2024-02-02 09:32:02      25 阅读
  9. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-02-02 09:32:02      28 阅读
  10. <span style='color:red;'>Tomcat</span>

    Tomcat

    2024-02-02 09:32:02      21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-02 09:32:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-02 09:32:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-02 09:32:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-02 09:32:02       20 阅读

热门阅读

  1. Django从入门到放弃

    2024-02-02 09:32:02       34 阅读
  2. advPython-3

    2024-02-02 09:32:02       31 阅读
  3. Vue中的插槽Slot如何使用

    2024-02-02 09:32:02       26 阅读
  4. 81.如何评估一台服务器能开启多少Go协程

    2024-02-02 09:32:02       24 阅读
  5. 【笔记】Helm-5 Chart模板指南-6 流控制

    2024-02-02 09:32:02       33 阅读
  6. OR-Tools的CP-SAT求解器常用参数设置与说明

    2024-02-02 09:32:02       33 阅读
  7. 2024美赛数学建模F题思路&源码

    2024-02-02 09:32:02       32 阅读
  8. 关于在MacOS安装虚拟机的全过程

    2024-02-02 09:32:02       32 阅读
  9. TP5手动集成GatewayWorker

    2024-02-02 09:32:02       32 阅读