111 lines
2.4 KiB
JSON
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
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|