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](www.baeldung.com/ spring-boot-custom-error-page) 详细解释有关Spring Boot中处理错误的更多信息。

2.3. 服务器连接

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

Spring Boot中,我们可以定义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上找到。

原文链接:www.baeldung.com/spring-boot…

作者:baeldung

译者:Leesen

如何配置Spring Boot Tomcat的更多相关文章

  1. Spring Boot Tomcat配置详解

    参数配置容器 server.xx开头的是所有servlet容器通用的配置,server.tomcat.xx开头的是tomcat特有的参数,其它类似. 所有参数绑定配置类:org.springframe ...

  2. 配置spring boot 内置tomcat的accessLog日志

    #配置内置tomcat的访问日志server.tomcat.accesslog.buffered=trueserver.tomcat.accesslog.directory=/home/hygw/lo ...

  3. spring boot tomcat 打本地包成war,通过Tomcat启动时出现问题: ZipException: error in opening zip file

    一个第三方公司提供spring boot 项目,直接启动是ok的, 但是打包成war,通过Tomcat启动,就出现 ZipException: error in opening zip file: 2 ...

  4. Spring Boot tomcat

    定制内嵌 Tomcat 设置内嵌Tomcat的端口 Spring Boot 内嵌的 Tomcat 服务器默认运行在 8080 端口.如果,我们需要修改Tomcat的端口,我们可以在 src/main/ ...

  5. spring boot tomcat 部署

    前几天springboot项目部署到linux中,整个过程就是个坑啊.踩坑的过程中也学到了许多.spring boot 项目部署时由于其内置了tomcat和jdk,而且还都是8. 所以部署的话就分为两 ...

  6. 在IDEA中配置spring boot项目的热更新

    在我使用IDEA的过程中,我发现Spring Boot项目本来自带的一个热部署工具无法使用,这里在参考各家博客后给出解决方案: 修改POM 首先POM文件需要包含spring boot的热部署工具,m ...

  7. RabbitMQ进阶使用-延时队列的配置(Spring Boot)

    依赖 MAVEN配置pom.xml <dependency> <groupId>org.springframework.boot</groupId> <art ...

  8. Linux系统CentOS 7配置Spring Boot运行环境

    从阿里云新买的一台Linux服务器,用来部署SpringBoot应用,由于之前一直使用Debian版本,环境配置有所不同,也较为繁琐,本文主要介绍CentOS下配置SpringBoot环境的过程 新建 ...

  9. vs code 配置spring boot开发环境

    一.环境变量 jdk环境变量一键设置 管理員运行 - 一支小白 - 博客园https://www.cnblogs.com/startnow/p/7416533.html 二.安装插件 1.Java E ...

随机推荐

  1. 【01】Vue 之hello wolrd

    1.1. Vue简介 Vue是一个前端的双向绑定类的框架,发音[读音 /vjuː/, 类似于 view].新的Vue版本参考了React的部分设计,当然也有自己独特的地方,比如Vue的单文件组件开发方 ...

  2. Memcache缓存用好了,性能有了很大的提高

    web服务器1 web服务器2 web服务器3如果每台web服务器都向mysql服务器表插入信息并且要做出相应最新编号反馈出现这样的高并发时候怎么减少服务器压力,同时用户体验还要好 可以使用Memca ...

  3. android中与Adapter相关的控件----Spinner&AutoCompleteTextView

    Spinner(列表选项框) & AutoCompleteTextView(自动完成文本框) 一.列表选项框核心属性 android:dropDownHorizontalOffset设置列表框 ...

  4. Matcher类详解2-group

    Matcher.group是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西即匹配的第一个子表达式,group(2)指的第二个括号里的东西即匹配的第二个子表达 ...

  5. Fedora 24 Linux 环境下实现 Infinality 字体渲染增强及 Java 字体渲染改善的方法(修订)

    Fedora 24 Linux 桌面环境默认字体渲染引擎 freetype 及字体配置工具 fontconfig 采用的是未经优化的编译及设置,字体渲染效果比较差.而某些 Linux 发行版的桌面字体 ...

  6. python3列表推导式和生成器。

    1.把一个字符串变成 Unicode 码位的列表 >>> symbols = '$¢£¥€¤' >>> codes = [] >>> for sy ...

  7. 如何证明一个数的数根(digital root)就是它对9的余数?

    数根就是不断地求这个数的各位数之和,直到求到个位数为止.所以数根一定和该数模9同余,但是数根又是大于零小于10的,所以数根模9的余数就是它本身,也就是说该数模9之后余数就是数根. 证明: 假设有一个n ...

  8. BZOJ2748(DP)

    非常简单的DP题.类似背包的操作,按照音量改变值进行状态转移即可. #include <bits/stdc++.h> using namespace std; #define REP(i, ...

  9. centos7.3 开放端口 防火墙端口

    1. 查看已打开的端口 # netstat -anp 2. 查看想开的端口是否已开 # firewall-cmd --query-port=666/tcp 若此提示 FirewallD is not ...

  10. linux grep 搜索查找

    查找关键字在哪些文件夹中的哪些文件中出现(只列出文件名称): grep -l 15386257298 */* 查找关键字在哪些文件夹中的哪些文件中出现(列出文件名称+关键字): grep -o 153 ...