Configuration
Complete list of configuration options.
Millau Environment Variables
- LOGGING: logging level, optional,
INFO
by default. - HTTP: HTTP port for incoming traffic, optional,
80
by default. - HTTPS: HTTPS port for incoming traffic, optional,
443
by default. - LICENSE: Millau license key, optional.
- ACME: ACME API of the Certificate Authority, optional,
https://api.buypass.com/acme/directory
by default.
Millau Logging Levels
- FATAL: indicates an unrecoverable error; the process will exit.
- ERROR: indicates a proxy failure; the process continues running.
- WARN: indicates client or microservice misbehavior; the process continues running.
- INFO: indicates normal functional behavior. Default level.
- DEBUG: indicates step‑by‑step functional behavior.
services:
proxy:
image: codelev/millau:latest
environment:
- LOGGING=DEBUG
...
Millau HTTP and HTTPS Ports
By default, the HTTP and HTTPS ports are 80
and 443
. You can change them as follows:
services:
proxy:
image: codelev/millau:latest
environment:
- HTTP=8080
- HTTPS=8443
...
Automatic HTTPS
By default, ACME API is https://api.buypass.com/acme/directory
(Buypass AS Certificate Authority, Norway).
You can change is as follows:
services:
proxy:
image: codelev/millau:latest
environment:
- ACME=https://acme-v02.api.letsencrypt.org/directory
...
Service Labels
- millau.enabled: enables proxying if set to
true
. - millau.port: service port, required.
- millau.hosts: space-separated hostnames (domain names), optional, any
*
by default. - millau.path: path portion of the URL starting with
/
, optional,/
by default. - millau.timeout: failover timeout in seconds, optional,
30
by default. - millau.retry: failover period in seconds, optional,
60
by default. - millau.key: TLS private key encoded in
base64
, optional. - millau.cert: TLS public key encoded in
base64
, optional.
Host Matching
The matching logic selects the services whose millau.hosts
label matches the domain hierarchy.
It prioritizes:
- exact matches,
- longest suffix.
Examples
Configured | Requested | Selected |
---|---|---|
one.com two.com | one.com | one.com |
one.com two.com | www.two.com | two.com |
one.com two.com | three.two.com | two.com |
one.com local | blue.local | local |
* two.com | two.com | two.com |
* two.com | one.com | * |
* * | one.com | * * |
Path Matching
The matching logic selects the services whose millau.path
label matches the beginning of the request path.
It prioritizes:
- exact matches,
- longest prefix.
Examples
Configured | Requested | Selected |
---|---|---|
/api/ / | /api/ | /api/ |
/api/ / | /api | / |
/api/ / | /file.html | / |
/api/ / | /api/x | /api/ |
/api/ / | /api/x/ | /api/ |
/api/ / | /api/x/file.html | /api/ |
/api/ / /file.html | /file.html | /file.html |
/file /api/ / /file | /file.html | /file /file |
/api/ / /file /file.html | /file.html | /file.html |
/api/ / /api/ | /api/ | /api/ /api/ |