Configuration
Complete list of configuration options.
Millau Environment Variables
- LOGGING: logging level, optional,
INFOby default. - HTTP: HTTP port for incoming traffic, optional,
80by default. - HTTPS: HTTPS port for incoming traffic, optional,
443by default. - LICENSE: Millau license key, optional.
- ACME: ACME API of the Certificate Authority, optional,
https://api.buypass.com/acme/directoryby 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,
30by default. - millau.retry: failover period in seconds, optional,
60by 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/ |