You are viewing the documentation for the 2.6.0-M4 development release. The latest stable release series is 3.0.x.
§Configuring Netty Server Backend
The Netty server backend is built on top of Netty.
NOTE: The Netty server backend is not the default in 2.6.x, and so must be specifically enabled.
§Default configuration
Play uses the following default configuration:
play.server {
# The server provider class name
provider = "play.core.server.NettyServerProvider"
netty {
# The number of event loop threads. 0 means let Netty decide, which by default will select 2 times the number of
# available processors.
eventLoopThreads = 0
# The maximum length of the initial line. This effectively restricts the maximum length of a URL that the server will
# accept, the initial line consists of the method (3-7 characters), the URL, and the HTTP version (8 characters),
# including typical whitespace, the maximum URL length will be this number - 18.
maxInitialLineLength = 4096
# The maximum length of the HTTP headers. The most common effect of this is a restriction in cookie length, including
# number of cookies and size of cookie values.
maxHeaderSize = 8192
# The maximum length of body bytes that Netty will read into memory at a time.
# This is used in many ways. Note that this setting has no relation to HTTP chunked transfer encoding - Netty will
# read "chunks", that is, byte buffers worth of content at a time and pass it to Play, regardless of whether the body
# is using HTTP chunked transfer encoding. A single HTTP chunk could span multiple Netty chunks if it exceeds this.
# A body that is not HTTP chunked will span multiple Netty chunks if it exceeds this or if no content length is
# specified. This only controls the maximum length of the Netty chunk byte buffers.
maxChunkSize = 8192
# Whether the Netty wire should be logged
log.wire = false
# The transport to use, either jdk or native.
# Native socket transport has higher performance and produces less garbage but are only available on linux
transport = "jdk"
# Netty options. Possible keys here are defined by:
#
# http://netty.io/4.0/api/io/netty/channel/ChannelOption.html
#
# Options that pertain to the listening server socket are defined at the top level, options for the sockets associated
# with received client connections are prefixed with child.*
option {
# Set the size of the backlog of TCP connections. The default and exact meaning of this parameter is JDK specific.
# SO_BACKLOG = 100
child {
# Set whether connections should use TCP keep alive
# SO_KEEPALIVE = false
# Set whether the TCP no delay flag is set
# TCP_NODELAY = false
}
}
}
}
§Configuring transport socket
Native socket transport has higher performance and produces less garbage but is only available on Linux.
You can configure the transport socket type in application.conf
:
play.server {
netty {
transport = "native"
}
}
§Configuring channel options
The available options are defined in Netty channel option documentation.
If you are using native socket transport you can set additional options.
Next: Configuring logging