Skip to main content
Version: 0.10.0-dev

Ingress Configuration

Ingress files live at CONFIG_ROOT/ingress.d/*.hcl. Each file defines a listener bound to an interface and port, along with the services, routes, upstreams, and static file policies attached to it.

Structure

A complete ingress file follows this skeleton:

bind = {
interface = "..."
port = ...
tls = { ... }

connection_filter = { ... }
connection_rate_limiting_filter = { ... }
}

bind_admin = { ... }

services = [
{
load_balancing_strategy = "..."
circuit_breaker = { ... }
routes = [ ... ]
upstreams = [ ... ]
}
]

static_files = [
{
routes = [
{
hosts = [...]
path = "..."
file_dir = "..."
compression = { ... }
cache_policy = { ... }
}
]
}
]

Sections

SectionDescription
BindPrimary listener address, TLS, and protocol settings.
Connection FilterIP-based access control for incoming connections.
Connection Rate LimiterTime-windowed admission control per client IP.
Admin BindAdmin API listener for observability and operations.
ServicesService definitions grouping routes with upstreams.
Circuit BreakerUpstream protection through failure-aware traffic gating.
RoutesHostname and path-prefix matching rules.
UpstreamsBackend servers (TCP endpoints or Unix sockets).
Upstream TLSTLS settings for upstream connections.
Static FilesServe files directly from the local filesystem.
CompressionCompression settings for static file responses.
Cache PolicyCache-Control header configuration for static files.

Both services and static routes use longest-prefix matching, so more specific routes take precedence over broader ones.