点击蓝色“程序猿DD”关注我哟

加个“星标”,不忘签到哦

来源:锅外的大佬


关注我,回复口令获取可获取独家整理的学习资料:

001 :领取《Spring Boot基础教程》

002 :领取《Spring Cloud基础教程》

- 003领取最新阿里巴巴《Java开发规范1.5》新上

1.概述

Spring Boot Web应用程序默认包含预配置的嵌入式Web服务器。但在某些情况下,我们要修改默认配置以满足自定义要求。

在本教程中,我们将介绍通过application.properties文件配置Tomcat嵌入式服务器的一些常见用例。

2.常见的嵌入式Tomcat配置

2.1. 服务器地址和端口

我们希望更改的最常见配置是端口号

server.port = 80

如果我们不提供server.port 参数,则默认设置为8080。

在某些情况下,我们可能希望设置服务器应绑定的网络地址。换句话说,我们定义一个服务器将监听的IP地址

  1. server.address = my_custom_ip

默认情况下,该值设置为0.0.0.0,允许通过所有IPv4地址进行连接。设置另一个值,例如localhost - 127.0.0.1 - 将使服务器更具选择性。

2.2. 错误处理

默认情况下,Spring Boot提供标准错误网页。此页面称为Whitelabel。它默认启用,但如果我们不想显示任何错误信息,我们可以禁用它:

  1. server.error.whitelabel.enabled = false

  • Whitelabel的默认路径是/error。可以通过设置server.error.path参数来自定义它:

  1. server.error.path = /user-error

还可以设置属性,以确定显示有关错误的信息。例如,我们可以包含错误消息和堆栈跟踪:

  1. server.error.include-exception= true

  2. server.error.include-stacktrace= always

我们的教程Exception Message Handling for REST和Customize Whitelabel Error Page详细解释有关Spring Boot中处理错误的更多信息。

2.3. 服务器连接

当在低资源容器上运行时,我们可能希望减少CPU和内存负载。一种方法是限制应用程序可以同时处理的请求数量。相反,我们可以增加此值以使用更多可用资源来获得更好的性能。

在 SpringBoot中,我们可以定义 Tomcat工作线程的最大数量:

  1. server.tomcat.max-threads= 200

配置Web服务器时,设置服务器连接超时也可能很有用。这表示服务器在连接关闭之前等待客户端发出请求的最长时间:

  1. server.connection-timeout= 5s

我们还可以定义请求头的最大大小:

  1. server.max-http-header-size= 8KB

请求正文的最大大小:

  1. server.tomcat.max-swallow-size= 2MB

或者整个POST请求的最大大小:

  1. server.tomcat.max-http-post-size= 2MB

2.4. SSL

要在我们的Spring Boot应用程序中启用SSL支持,我们需要将server.ssl.enabled属性设置为true,并定义SSL协议:

  1. server.ssl.enabled = true

  2. server.ssl.protocol = TLS

我们要配置保存证书密钥库的密码,类型和路径:

  1. server.ssl.key-store-password=my_password

  2. server.ssl.key-store-type=keystore_type

  3. server.ssl.key-store=keystore-path

我们还必须定义标识密钥库中密钥的别名:

  1. server.ssl.key-alias=tomcat

有关SSL配置的更多信息,请访问:HTTPS using self-signed certificate in Spring Boot。

2.5. Tomcat服务器访问日志

在尝试统计页面命中数,用户会话活动等时,Tomcat访问日志非常有用。

要启用访问日志,只需设置:

  1. server.tomcat.accesslog.enabled = true

我们还应该配置其他参数,例如附加到日志文件的目录名,前缀,后缀和日期格式:

  1. server.tomcat.accesslog.directory=logs

  2. server.tomcat.accesslog.file-date-format=yyyy-MM-dd

  3. server.tomcat.accesslog.prefix=access_log

  4. server.tomcat.accesslog.suffix=.log

3. 结论

在本教程中,我们学习了一些常见的Tomcat嵌入式服务器配置。要查看更多可能的配置,请访问官方页面: Spring Boot application properties docs。

与往常一样,这些示例的源代码可以在GitHub上找到。

推荐关注

推荐一个专注于国外大佬文章的翻译与发布的公众号。通过这个公众号,可以帮助我们紧跟技术的国际化发展趋势。


推荐阅读

  • 阿里P10、腾讯T4、华为18都是怎样的神级收入?

  • Git 自救指南:这些坑你都跳得出吗?

  • 用了那么多年MySQL不知道Explain?怪不得性能那么差!

  • 如何像技术高手一样解决问题

  • Maven 虐我千百遍,我待 Maven 如初恋

2019与大家聊聊技术人的斜杠生活

点一点“阅读原文”小惊喜在等你

Spring Boot下的Tomcat,你真的会用吗?相关推荐

  1. Spring Boot下Druid连接池的使用配置分析

    引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成. 1.  ...

  2. Spring Boot 内置Tomcat——集成JSP解决方案

    解决方案 一.创建webapp目录 在src/main下创建webapp目录,用于存放jsp文件.这就是一个普通的目录,无需执行Mark Directory As 二.创建JSP 1.指定web资源目 ...

  3. Spring Boot 内置Tomcat——getServletContext().getRealPath()为临时目录问题解决方案

    问题描述 getServletContext().getRealPath()为临时目录 问题分析 默认情况下Spring Boot中request.getServletContext().getRea ...

  4. Spring Boot——内置Tomcat配置阿里云免费SSL证书(PFX格式证书)[启用HTTPS协议]

    基本概念 SSL证书:SSL证书是数字证书的一种,类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证书. SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA ...

  5. spring boot部署到tomcat

    spring boot部署到tomcat 1.使用spring boot内置的tomcat(jar包方式)官方推荐 1.1 配置内置tomcat端口 在spring boot的配置文件里面配置端口 s ...

  6. openshift k8s_带有DIY的Openshift上的Spring Boot / Java 8 / Tomcat 8

    openshift k8s DIY盒带是一种实验性盒带,提供了一种在OpenShift上测试不受支持的语言的方法. 它提供了最小限度的自由形式的支架,将墨盒的所有细节留给了应用程序开发人员 . 这篇博 ...

  7. 带有DIY的Openshift上的Spring Boot / Java 8 / Tomcat 8

    DIY墨盒是一种实验性墨盒,它提供了一种在OpenShift上测试不受支持的语言的方法. 它提供了最小限度的自由形式的支架,将墨盒的所有细节留给了应用程序开发人员 . 这篇博客文章说明了结合了Post ...

  8. spring boot内嵌tomcat优雅的开启apr模式

    文章目录 简介 Win下开启APR Linux下开启APR 把lib打进jar包 简介 环境: jdk8.spring boot 2.3.4.RELEASE.centOS7.3.win7 在sprin ...

  9. Spring Boot内置Tomcat设置超时时间

    最近有个小工程扫描出一个安全漏洞, SlowHttp慢速攻击的,需要修改 Tomcat 的配置,也正好关于 Tomcat 的参数调优,正好记录一下. 漏洞信息 查了一下这个漏洞,漏洞有两个解决方法, ...

最新文章

  1. 基于长短读长和参考基因组的组装错误检测算法的研究
  2. Python自学起飞——005
  3. sql server中的 SET NOCOUNT ON 的含义
  4. TFBOYS饭票上线引热议,骗局之外,区块链技术能重构娱乐产业吗?
  5. 点乘叉乘坐标公式_点积与叉乘的运算与物理意义
  6. 关于在用异步消息处理机制使用Message.Obtain()方法(而非New Message)获得一个Message对象的好处
  7. 一个web图片热点生成工具(winform开发) 附源码
  8. 近一周学习之-----npm换源工具之nrm
  9. Android 系统root教程-magisk最新版
  10. R语言ggplot2可视化哑铃图、强调从一个点到另一个点的变化、数量的变化、客户满意度的变化等(Dumbbell Plot)、为可视化图像添加标题、题注信息
  11. 旧手机物联网_为了能让你的智能手机用十年,他们给旧手机做了一个操作系统...
  12. 用计算机计算工资的公式,工资、薪金所得个人所得税Excel计算公式(正算)
  13. RED LION 1GS00000
  14. prefetch()
  15. elasticsearch7.0.1集群搭建(最后有ES6.7的配置)
  16. IE10和IE9兼容性常见问题解答(FAQ)
  17. ker矩阵是什么意思_深入理解旋转矩阵和平移向量的本质
  18. 如何查杀stopped进程
  19. 苹果Mac触控栏怎样使用更方便
  20. 锁相环(PLL)基本原理

热门文章

  1. linux bash 写入文件
  2. docker 容器中的 uid 和 gid
  3. linux xxd命令 十六进制显示文件
  4. linux 内核 hook函数介绍
  5. python3 request模块 https certificate verify failed 错误
  6. linux 交叉编译 libxml2,openssl,libssh2
  7. linux error errno 错误对照
  8. 编译时遇到如下错误error C2061: syntax error : identifier 'THIS_FILE'
  9. read_copy update
  10. 计算机中丢失UID.MR.DLL,计算机中丢失.dll如何解决 大师来详解