Hostnames
The host label accepts a comma-separated list. Sōzune passes each entry as-is to Sōzu, which classifies it as exact, wildcard, or regex based on its shape. The matching rules below are Sōzu's.
Exact
labels: - "sozune.http.app.host=app.example.com"
A literal hostname. Matched against the request's Host header.
Wildcard
A wildcard matches exactly one DNS label.
labels: - "sozune.http.app.host=*.example.com"
foo.example.com matches; bar.foo.example.com does not. The leading * is required — patterns like app*.example.com are rejected.
The bare * matches everything (any host).
Regex
A regex pattern is wrapped in /.../, applied to one DNS label.
labels: - "sozune.http.cdn.host=/cdn[0-9]+/.example.com"
The example matches cdn1.example.com, cdn42.example.com, but not cdnabc.example.com. The . outside the regex segment is treated as a literal DNS separator (not a regex metacharacter).
You can have several regex segments in the same hostname, e.g. /v[0-9]+/./api[a-z]/.example.com.
Mixed list
labels: - "sozune.http.app.host=app.example.com,*.app.example.com"
Each item in the list is parsed on its own — you can mix exact, wildcard and regex freely.
Priority
When several entrypoints could match the same request, Sōzune applies them in priority descending order.
labels: - "sozune.http.specific.host=admin.example.com" - "sozune.http.specific.priority=100" - "sozune.http.catchall.host=*.example.com" # priority defaults to 0
For admin.example.com, the specific entrypoint wins. Other subdomains hit catchall.
The default priority is 0. Higher numbers win.
Notes
- Wildcard quirk: due to an upstream issue (sozu-proxy/sozu#1223), wildcards combined with shorter hostnames on the same listener could panic the HTTP worker on early Sōzu builds. Sōzune ships a patched build that guards against this.
- Hostnames are passed as-is to Sōzu, which is responsible for the actual matching at request time.