{ "listeners": { "endpoints": [ { "id": "public-app-http", "name": "public-app HTTP", "scope": "internal", "enabled": true, "binding": { "address": "0.0.0.0:80", "tls": false, "http2": false } }, { "id": "public-app-https", "name": "public-app HTTPS", "scope": "internal", "enabled": true, "binding": { "address": "0.0.0.0:443", "tls": true, "http2": true } } ] }, "vhosts": [ { "id": "public-app", "enabled": true, "frontend": { "hosts": [ "app.example.test" ], "listener_ids": [ "public-app-http", "public-app-https" ] }, "backends": [ { "id": "app-a", "url": "http://127.0.0.1:9001", "weight": 3, "enabled": true, "allow_private": true, "preserve_host": true, "protocol": "http1", "address_allowlist": [ "127.0.0.1/32" ] }, { "id": "app-b", "url": "http://127.0.0.1:9002", "weight": 1, "enabled": true, "allow_private": true, "preserve_host": true, "protocol": "http1", "address_allowlist": [ "127.0.0.1/32" ] } ], "load_balancing": { "algorithm": "adaptive", "slow_start_seconds": 10, "health_check": { "mode": "http", "path": "/health", "interval_ms": 5000, "timeout_ms": 2000, "slow_response_ms": 1500, "fall": 3, "rise": 2, "expected_status_min": 200, "expected_status_max": 299 }, "keepalive": { "enabled": true, "idle_timeout_seconds": 30, "max_idle_per_host": 4, "tcp_keepalive_seconds": 30, "pool_recycle_requests": 25000, "pool_recycle_seconds": 3600, "http1_max_buffer_bytes": 131072 }, "sticky": { "mode": "cookie", "ttl_seconds": 3600 } }, "security_headers": { "hsts": { "enabled": true, "max_age_seconds": 300, "include_subdomains": false, "preload": false }, "nosniff": true, "frame_options": "sameorigin", "referrer_policy": "strict-origin-when-cross-origin" }, "headers": { "response": [ { "op": "remove", "name": "x-powered-by" }, { "op": "set", "name": "x-served-by", "value": "RustProxy" } ] }, "routes": [ { "id": "root", "path_prefix": "/", "cache": false } ] } ], "tls": { "default_certificate": "app", "certificates": [ { "id": "app", "hosts": [ "app.example.test" ], "cert_file": "app.pem", "key_file": "app.key" } ] } }