Document updated on Feb 16, 2022
KrakenD starts an HTTP server to offer the API Gateway server. You can personalize some of the settings used to start the service and also override the default settings of the underlying Go standard library.
If you want to customize any of the settings below, they must be written at the top level of the configuration.
|The TCP port where KrakenD listens to. Recommended value is in the range 1024-65535 to run as an unpriviliged user. Defaults to
|Sets a default
Cache-Control: public, max-age=%d header to all endpoints where
%d is the conversion to seconds of any duration you wrote, indicating for how long the client can cache the content of the request. You can override this value per endpoint. Notice that KrakenD does not cache the content with this parameter, but tells the client how to do it. Defaults to
0s (no cache). For KrakenD cache, see backend caching
|A sequential start registers async agents in order when you run the server, allowing you to read the starting logs in sequential order. The startup speed depends on the number of async agents to register and the number of CPUs. A non-sequential start (default) is much faster, but logs are not in order. Defaults to
|Is the maximum duration for reading the entire request, including the body. Because
read_timeout does not let Handlers make per-request decisions on each request body’s acceptable deadline or upload rate, most users will prefer to use
read_header_timeout. It is valid to use them both.
|The amount of time allowed to read request headers. The connection’s read deadline is reset after reading the headers and the Handler can decide what is considered too slow for the body.
|The maximum duration before timing out writes of the response. It is reset whenever a new request’s header is read. Like
read_timeout, it does not let Handlers make decisions on a per-request basis.
|The maximum amount of time to wait for the next request when keep-alives are enabled. If
idle_timeout is zero, the value of
read_timeout is used. If both are zero, there is no timeout.
The duration is positive integer value with time units. Valid time units are:
h (hours - don’t!)
2s for 2 seconds or
1500ms for 1500 milliseconds.
When you declare in the configuration file any of the HTTP server settings declared above, you can override its value through environment variables when starting the server.
All the environment variables have the same name are the same settings above in uppercase and with the
KRAKEND_ preffix. The following env vars are available:
You can start KrakenD with the desired variables to override what you have in the configuration:
$KRAKEND_PORT=8000 KRAKEND_READ_TIMEOUT="1s" krakend run -c krakend.json
The documentation is only a piece of the help you can get! Whether you are looking for Open Source or Enterprise support, see more support channels that can help you.