Files
RustProxy/examples/vhosts-private.json
T
2026-10-03 00:27:09 +01:00

111 lines
2.4 KiB
JSON

{
"listeners": {
"endpoints": [
{
"id": "private-app-http",
"name": "private-app HTTP",
"scope": "internal",
"enabled": true,
"binding": {
"address": "127.0.0.2:8080",
"tls": false,
"http2": false
}
}
]
},
"vhosts": [
{
"id": "private-app",
"enabled": true,
"frontend": {
"hosts": [
"private.localhost"
],
"listener_ids": [
"private-app-http"
]
},
"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
},
"sticky": {
"mode": "off",
"ttl_seconds": 3600
}
},
"security_headers": {
"hsts": {
"enabled": 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
}
]
}
]
}