• 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 最强技术教程

  • 相关阅读:
    002变量
    001Java输入、eclipse快捷键
    040同步条件event
    kali配置ip,更新源,更新签名
    039条件变量同步(Condition)
    038信号量
    037多线程同步
    配置java环境变量(详细)
    提高你的Python能力:理解单元测试
    电影里的代码之《机械姬》:筛法求质数
  • 原文地址:https://www.cnblogs.com/javastack/p/9153952.html
Copyright © 2020-2023  润新知