Files
RustProxy/examples/vhosts-balanced.json
T
2026-10-05 10:58:50 +02:00

142 lines
3.1 KiB
JSON

{
"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"
}
]
}
}