keyless_tcp

A keyless backend that connects to upstream peers over TCP or TLS.

This backend type is valid only for keyless tasks.

Config Keys

The following common keys are supported:

tls_client

optional, type: rustls client config

Enable TLS and configure the local TLS client.

default: not set

tls_name

optional, type: tls name

Set the TLS server name used to verify upstream certificates.

If not set, the peer IP will be used.

default: not set

duration_stats

optional, type: histogram metrics

Configure histogram metrics for TCP connect duration.

default: set with default value

request_buffer_size

optional, type: usize

Set the size of the local request queue. New connections are opened when the queue is full.

default: 128

response_recv_timeout

optional, type: humanize duration

Set the timeout for waiting for an upstream response.

On timeout, the request is dropped from the local buffer and an internal error response is returned to the client.

default: 4s

connection_max_request_count

optional, type: usize

Set the maximum number of requests handled by a single upstream connection.

default: 4000

Added in version 0.3.4.

connection_alive_time

optional, type: humanize duration

Set the maximum lifetime of a single upstream connection.

default: 1h

Added in version 0.3.4.

graceful_close_wait

optional, type: humanize duration

Set the graceful wait time before closing a live connection.

default: 10s

connection_pool

optional, type: connection pool

Set the connection-pool configuration.

default: enabled with max_idle = 8192 and min_idle = 256

Added in version 0.3.5.

tcp_keepalive

optional, type: tcp keepalive

Set TCP keepalive.

default: no keepalive set

wait_new_channel

optional, type: bool

Set whether requests should wait for a new connection when no live connection is available.

default: false

Added in version 0.3.5.