Spring Boot下的Tomcat,你真的会用吗?
点击蓝色“程序猿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地址:
server.address = my_custom_ip
默认情况下,该值设置为0.0.0.0,允许通过所有IPv4地址进行连接。设置另一个值,例如localhost - 127.0.0.1 - 将使服务器更具选择性。
2.2. 错误处理
默认情况下,Spring Boot提供标准错误网页。此页面称为Whitelabel。它默认启用,但如果我们不想显示任何错误信息,我们可以禁用它:
server.error.whitelabel.enabled = false
Whitelabel
的默认路径是/error。可以通过设置server.error.path参数来自定义它:
server.error.path = /user-error
还可以设置属性,以确定显示有关错误的信息。例如,我们可以包含错误消息和堆栈跟踪:
server.error.include-exception= true
server.error.include-stacktrace= always
我们的教程Exception Message Handling for REST和Customize Whitelabel Error Page详细解释有关Spring Boot中处理错误的更多信息。
2.3. 服务器连接
当在低资源容器上运行时,我们可能希望减少CPU和内存负载。一种方法是限制应用程序可以同时处理的请求数量。相反,我们可以增加此值以使用更多可用资源来获得更好的性能。
在 SpringBoot
中,我们可以定义 Tomcat
工作线程的最大数量:
server.tomcat.max-threads= 200
配置Web服务器时,设置服务器连接超时也可能很有用。这表示服务器在连接关闭之前等待客户端发出请求的最长时间:
server.connection-timeout= 5s
我们还可以定义请求头的最大大小:
server.max-http-header-size= 8KB
请求正文的最大大小:
server.tomcat.max-swallow-size= 2MB
或者整个POST请求的最大大小:
server.tomcat.max-http-post-size= 2MB
2.4. SSL
要在我们的Spring Boot应用程序中启用SSL支持,我们需要将server.ssl.enabled属性设置为true,并定义SSL协议:
server.ssl.enabled = true
server.ssl.protocol = TLS
我们要配置保存证书密钥库的密码,类型和路径:
server.ssl.key-store-password=my_password
server.ssl.key-store-type=keystore_type
server.ssl.key-store=keystore-path
我们还必须定义标识密钥库中密钥的别名:
server.ssl.key-alias=tomcat
有关SSL配置的更多信息,请访问:HTTPS using self-signed certificate in Spring Boot。
2.5. Tomcat服务器访问日志
在尝试统计页面命中数,用户会话活动等时,Tomcat访问日志非常有用。
要启用访问日志,只需设置:
server.tomcat.accesslog.enabled = true
我们还应该配置其他参数,例如附加到日志文件的目录名,前缀,后缀和日期格式:
server.tomcat.accesslog.directory=logs
server.tomcat.accesslog.file-date-format=yyyy-MM-dd
server.tomcat.accesslog.prefix=access_log
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,你真的会用吗?相关推荐
- Spring Boot下Druid连接池的使用配置分析
引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成. 1. ...
- Spring Boot 内置Tomcat——集成JSP解决方案
解决方案 一.创建webapp目录 在src/main下创建webapp目录,用于存放jsp文件.这就是一个普通的目录,无需执行Mark Directory As 二.创建JSP 1.指定web资源目 ...
- Spring Boot 内置Tomcat——getServletContext().getRealPath()为临时目录问题解决方案
问题描述 getServletContext().getRealPath()为临时目录 问题分析 默认情况下Spring Boot中request.getServletContext().getRea ...
- Spring Boot——内置Tomcat配置阿里云免费SSL证书(PFX格式证书)[启用HTTPS协议]
基本概念 SSL证书:SSL证书是数字证书的一种,类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证书. SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA ...
- spring boot部署到tomcat
spring boot部署到tomcat 1.使用spring boot内置的tomcat(jar包方式)官方推荐 1.1 配置内置tomcat端口 在spring boot的配置文件里面配置端口 s ...
- openshift k8s_带有DIY的Openshift上的Spring Boot / Java 8 / Tomcat 8
openshift k8s DIY盒带是一种实验性盒带,提供了一种在OpenShift上测试不受支持的语言的方法. 它提供了最小限度的自由形式的支架,将墨盒的所有细节留给了应用程序开发人员 . 这篇博 ...
- 带有DIY的Openshift上的Spring Boot / Java 8 / Tomcat 8
DIY墨盒是一种实验性墨盒,它提供了一种在OpenShift上测试不受支持的语言的方法. 它提供了最小限度的自由形式的支架,将墨盒的所有细节留给了应用程序开发人员 . 这篇博客文章说明了结合了Post ...
- spring boot内嵌tomcat优雅的开启apr模式
文章目录 简介 Win下开启APR Linux下开启APR 把lib打进jar包 简介 环境: jdk8.spring boot 2.3.4.RELEASE.centOS7.3.win7 在sprin ...
- Spring Boot内置Tomcat设置超时时间
最近有个小工程扫描出一个安全漏洞, SlowHttp慢速攻击的,需要修改 Tomcat 的配置,也正好关于 Tomcat 的参数调优,正好记录一下. 漏洞信息 查了一下这个漏洞,漏洞有两个解决方法, ...
最新文章
- 基于长短读长和参考基因组的组装错误检测算法的研究
- Python自学起飞——005
- sql server中的 SET NOCOUNT ON 的含义
- TFBOYS饭票上线引热议,骗局之外,区块链技术能重构娱乐产业吗?
- 点乘叉乘坐标公式_点积与叉乘的运算与物理意义
- 关于在用异步消息处理机制使用Message.Obtain()方法(而非New Message)获得一个Message对象的好处
- 一个web图片热点生成工具(winform开发) 附源码
- 近一周学习之-----npm换源工具之nrm
- Android 系统root教程-magisk最新版
- R语言ggplot2可视化哑铃图、强调从一个点到另一个点的变化、数量的变化、客户满意度的变化等(Dumbbell Plot)、为可视化图像添加标题、题注信息
- 旧手机物联网_为了能让你的智能手机用十年,他们给旧手机做了一个操作系统...
- 用计算机计算工资的公式,工资、薪金所得个人所得税Excel计算公式(正算)
- RED LION 1GS00000
- prefetch()
- elasticsearch7.0.1集群搭建(最后有ES6.7的配置)
- IE10和IE9兼容性常见问题解答(FAQ)
- ker矩阵是什么意思_深入理解旋转矩阵和平移向量的本质
- 如何查杀stopped进程
- 苹果Mac触控栏怎样使用更方便
- 锁相环(PLL)基本原理
热门文章
- linux bash 写入文件
- docker 容器中的 uid 和 gid
- linux xxd命令 十六进制显示文件
- linux 内核 hook函数介绍
- python3 request模块 https certificate verify failed 错误
- linux 交叉编译 libxml2,openssl,libssh2
- linux error errno 错误对照
- 编译时遇到如下错误error C2061: syntax error : identifier 'THIS_FILE'
- read_copy update
- 计算机中丢失UID.MR.DLL,计算机中丢失.dll如何解决 大师来详解