Spring Boot Tomcat配置详解编程语言

Spring Boot Tomcat配置详解编程语言

参数配置容器

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

所有参数绑定配置类:org.springframework.boot.autoconfigure.web.ServerProperties

# EMBEDDED SERVER CONFIGURATION (ServerProperties) 
server.address= # Network address to which the server should bind to. 
server.compression.enabled=false # If response compression is enabled. 
server.compression.excluded-user-agents= # List of user-agents to exclude from compression. 
server.compression.mime-types= # Comma-separated list of MIME types that should be compressed. For instance `text/html,text/css,application/json` 
server.compression.min-response-size= # Minimum response size that is required for compression to be performed. For instance 2048 
server.connection-timeout= # Time in milliseconds that connectors will wait for another HTTP request before closing the connection. When not set, the connector's container-specific default will be used. Use a value of -1 to indicate no (i.e. infinite) timeout. 
server.display-name=application # Display name of the application. 
server.max-http-header-size=0 # Maximum size in bytes of the HTTP message header. 
server.error.include-exception=false # Include the "exception" attribute. 
server.error.include-stacktrace=never # When to include a "stacktrace" attribute. 
server.error.path=/error # Path of the error controller. 
server.error.whitelabel.enabled=true # Enable the default error page displayed in browsers in case of a server error. 
server.jetty.acceptors= # Number of acceptor threads to use. 
server.jetty.accesslog.append=false # Append to log. 
server.jetty.accesslog.date-format=dd/MMM/yyyy:HH:mm:ss Z # Timestamp format of the request log. 
server.jetty.accesslog.enabled=false # Enable access log. 
server.jetty.accesslog.extended-format=false # Enable extended NCSA format. 
server.jetty.accesslog.file-date-format= # Date format to place in log file name. 
server.jetty.accesslog.filename= # Log filename. If not specified, logs will be redirected to "System.err". 
server.jetty.accesslog.locale= # Locale of the request log. 
server.jetty.accesslog.log-cookies=false # Enable logging of the request cookies. 
server.jetty.accesslog.log-latency=false # Enable logging of request processing time. 
server.jetty.accesslog.log-server=false # Enable logging of the request hostname. 
server.jetty.accesslog.retention-period=31 # Number of days before rotated log files are deleted. 
server.jetty.accesslog.time-zone=GMT # Timezone of the request log. 
server.jetty.max-http-post-size=0 # Maximum size in bytes of the HTTP post or put content. 
server.jetty.selectors= # Number of selector threads to use. 
server.port=8080 # Server HTTP port. 
server.server-header= # Value to use for the Server response header (no header is sent if empty) 
server.use-forward-headers= # If X-Forwarded-* headers should be applied to the HttpRequest. 
server.servlet.context-parameters.*= # Servlet context init parameters 
server.servlet.context-path= # Context path of the application. 
server.servlet.jsp.class-name=org.apache.jasper.servlet.JspServlet # The class name of the JSP servlet. 
server.servlet.jsp.init-parameters.*= # Init parameters used to configure the JSP servlet 
server.servlet.jsp.registered=true # Whether or not the JSP servlet is registered 
server.servlet.path=/ # Path of the main dispatcher servlet. 
server.session.cookie.comment= # Comment for the session cookie. 
server.session.cookie.domain= # Domain for the session cookie. 
server.session.cookie.http-only= # "HttpOnly" flag for the session cookie. 
server.session.cookie.max-age= # Maximum age of the session cookie in seconds. 
server.session.cookie.name= # Session cookie name. 
server.session.cookie.path= # Path of the session cookie. 
server.session.cookie.secure= # "Secure" flag for the session cookie. 
server.session.persistent=false # Persist session data between restarts. 
server.session.servlet.filter-order=-2147483598 # Session repository filter order. 
server.session.servlet.filter-dispatcher-types=ASYNC, ERROR, REQUEST # Session repository filter dispatcher types. 
server.session.store-dir= # Directory used to store session data. 
server.session.timeout= # Session timeout in seconds. 
server.session.tracking-modes= # Session tracking modes (one or more of the following: "cookie", "url", "ssl"). 
server.ssl.ciphers= # Supported SSL ciphers. 
server.ssl.client-auth= # Whether client authentication is wanted ("want") or needed ("need"). Requires a trust store. 
server.ssl.enabled= # Enable SSL support. 
server.ssl.enabled-protocols= # Enabled SSL protocols. 
server.ssl.key-alias= # Alias that identifies the key in the key store. 
server.ssl.key-password= # Password used to access the key in the key store. 
server.ssl.key-store= # Path to the key store that holds the SSL certificate (typically a jks file). 
server.ssl.key-store-password= # Password used to access the key store. 
server.ssl.key-store-provider= # Provider for the key store. 
server.ssl.key-store-type= # Type of the key store. 
server.ssl.protocol=TLS # SSL protocol to use. 
server.ssl.trust-store= # Trust store that holds SSL certificates. 
server.ssl.trust-store-password= # Password used to access the trust store. 
server.ssl.trust-store-provider= # Provider for the trust store. 
server.ssl.trust-store-type= # Type of the trust store. 
server.tomcat.accept-count= # Maximum queue length for incoming connection requests when all possible request processing threads are in use. 
server.tomcat.accesslog.buffered=true # Buffer output such that it is only flushed periodically. 
server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be relative to the tomcat base dir or absolute. 
server.tomcat.accesslog.enabled=false # Enable access log. 
server.tomcat.accesslog.file-date-format=.yyyy-MM-dd # Date format to place in log file name. 
server.tomcat.accesslog.pattern=common # Format pattern for access logs. 
server.tomcat.accesslog.prefix=access_log # Log file name prefix. 
server.tomcat.accesslog.rename-on-rotate=false # Defer inclusion of the date stamp in the file name until rotate time. 
server.tomcat.accesslog.request-attributes-enabled=false # Set request attributes for IP address, Hostname, protocol and port used for the request. 
server.tomcat.accesslog.rotate=true # Enable access log rotation. 
server.tomcat.accesslog.suffix=.log # Log file name suffix. 
server.tomcat.additional-tld-skip-patterns= # Comma-separated list of additional patterns that match jars to ignore for TLD scanning. 
server.tomcat.background-processor-delay=30 # Delay in seconds between the invocation of backgroundProcess methods. 
server.tomcat.basedir= # Tomcat base directory. If not specified a temporary directory will be used. 
server.tomcat.internal-proxies=10//.//d{1,3}//.//d{1,3}//.//d{1,3}|// 
192//.168//.//d{1,3}//.//d{1,3}|// 
169//.254//.//d{1,3}//.//d{1,3}|// 
127//.//d{1,3}//.//d{1,3}//.//d{1,3}|// 
172//.1[6-9]{1}//.//d{1,3}//.//d{1,3}|// 
172//.2[0-9]{1}//.//d{1,3}//.//d{1,3}|// 
172//.3[0-1]{1}//.//d{1,3}//.//d{1,3} # regular expression matching trusted IP addresses. 
server.tomcat.max-connections= # Maximum number of connections that the server will accept and process at any given time. 
server.tomcat.max-http-header-size=0 # Maximum size in bytes of the HTTP message header. 
server.tomcat.max-http-post-size=0 # Maximum size in bytes of the HTTP post content. 
server.tomcat.max-threads=0 # Maximum amount of worker threads. 
server.tomcat.min-spare-threads=0 # Minimum amount of worker threads. 
server.tomcat.port-header=X-Forwarded-Port # Name of the HTTP header used to override the original port value. 
server.tomcat.protocol-header= # Header that holds the incoming protocol, usually named "X-Forwarded-Proto". 
server.tomcat.protocol-header-https-value=https # Value of the protocol header that indicates that the incoming request uses SSL. 
server.tomcat.redirect-context-root= # Whether requests to the context root should be redirected by appending a / to the path. 
server.tomcat.remote-ip-header= # Name of the http header from which the remote ip is extracted. For instance `X-FORWARDED-FOR` 
server.tomcat.uri-encoding=UTF-8 # Character encoding to use to decode the URI. 
server.undertow.accesslog.dir= # Undertow access log directory. 
server.undertow.accesslog.enabled=false # Enable access log. 
server.undertow.accesslog.pattern=common # Format pattern for access logs. 
server.undertow.accesslog.prefix=access_log. # Log file name prefix. 
server.undertow.accesslog.rotate=true # Enable access log rotation. 
server.undertow.accesslog.suffix=log # Log file name suffix. 
server.undertow.buffer-size= # Size of each buffer in bytes. 
server.undertow.direct-buffers= # Allocate buffers outside the Java heap. 
server.undertow.io-threads= # Number of I/O threads to create for the worker. 
server.undertow.eager-filter-init=true # Whether servlet filters should be initialized on startup. 
server.undertow.max-http-post-size=0 # Maximum size in bytes of the HTTP post content. 
server.undertow.worker-threads= # Number of worker threads.

代码配置容器

除了利用上面的参数来自动配置servlet容器,还可以通过代码的方式。可以直接实现EmbeddedServletContainerCustomizer这个接口,ServerProperties也是实现这个接口的。

@ConfigurationProperties(prefix = "server", ignoreUnknownFields = true) 
public class ServerProperties 
implements EmbeddedServletContainerCustomizer, EnvironmentAware, Ordered { 
...

当然如果是Tomcat、Jetty、Undertow也可以使用下面对应的特定的容器工厂类。

// Jetty 
org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory 
// Tomcat 
org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory 
// Undertow 
org.springframework.boot.context.embedded.undertow.UndertowEmbeddedServletContainerFactory

替换Tomcat

spring-boot-starter-web brings Tomcat with spring-boot-starter-tomcat, but spring-boot-starter-jetty and spring-boot-starter-undertow can be used instead.

spring-boot-starter-web自动携带了tomcat依赖,但也可以替换成jetty和undertow,下面是一个替换jetty的示例。

<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-web</artifactId> 
<exclusions> 
<!-- Exclude the Tomcat dependency --> 
<exclusion> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-tomcat</artifactId> 
</exclusion> 
</exclusions> 
</dependency> 
<!-- Use Jetty instead --> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-jetty</artifactId> 
</dependency>

推荐:Spring Boot & Cloud 最强技术教程

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16259.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论