SpringBoot内置Tomcat参数配置

SpringBoot的项目在使用内置的Tomcat部署时,需要定义相关的Tomcat参数,本文主要讲述需要配置哪些参数。

1
2
3
4
5
6
7
8
9
server:
tomcat:
accesslog:
enabled: false #打开tomcat访问日志
directory: logs # 访问日志所在的目录
accept-count: #允许HTTP请求缓存到请求队列的最大个数,默认不限制
max-connections: #最大连接数,默认不设置
max-http-post-size: #HTTP POST内容最大长度,默认不限制
max-threads: #最大工作线程数

这些参数最终在ServerProperties.Tomcat类中体现

Tomcat是一个静态内部类,其中包含了一下属性

  • maxThreads 最大工作线程数
  • minSpareThreads 最小工作线程数
  • maxHttpPostSize HTTP POST内容最大长度
  • internalProxies 受信任IP校验正则表达式
  • protocolHeader 协议头,通常设置为X-Forwarded-Proto
  • protocolHeaderHttpsValue 协议头的内容,判断是否使用了SSL,默认值是https
  • portHeader 用于覆盖原始端口值的HTTP头的名称,默认为X-Forwarded-Port
  • redirectContextRoot 对上下文根的请求是否应该通过附加**/**到路径来重定向
  • useRelativeRedirects 设置通过调用sendRedirect生成的HTTP 1.1和后面的位置头是使用相对重定向还是使用绝对重定向
  • remoteIpHeader 提取远程IP的HTTP头的名称。例如X-FORWARDED-FOR
  • maxConnections 最大连接数,如果一旦连接数到达,剩下的连接将会保存到请求缓存队列里,也就是accept-count指定队列
  • maxHttpHeaderSize HTTP消息头的最大值(以字节为单位)
  • acceptCount 当所有可能的请求处理线程都在使用时,传入连接请求的最大队列长度

Tomcat拥有一个静态内部类Accesslog,主要用于配置Tomcat访问日志的参数信息

  • enabled 是否启用访问日志
  • pattern 访问日志的格式化模式,默认为common
  • directory 创建日志文件的目录。可以是绝对的或相对于Tomcat的基目录,默认是logs
  • prefix 日志文件名称前缀,默认为access_log
  • suffix 日志文件名称后缀,默认为.log
  • rotate 是否启用访问日志旋转,默认为true
  • renameOnRotate 是否推迟将日期戳包含在文件名中直到旋转时间。
  • fileDateFormat 日志文件名称中的日期格式,默认为**.yyyy-MM-dd**。
  • requestAttributesEnabled 为请求使用的IP地址、主机名、协议和端口设置请求属性。
  • buffered 是否缓冲输出,使其只定期刷新,默认为true

Tomcat还有名为Resource的静态内部类,主要用于配置静态资源缓存的生存周期