v0.24.5
This commit is contained in:
commit
5e23e9af02
240 files changed
+99957
No files matched your search
@@ -0,0 +1,236 @@
|
||||
{
|
||||
"host_policies": [
|
||||
{
|
||||
"hosts": [
|
||||
"localhost",
|
||||
"127.0.0.1",
|
||||
"demo.localhost"
|
||||
],
|
||||
"acl": {
|
||||
"default": "deny",
|
||||
"rules": [
|
||||
{
|
||||
"network": "127.0.0.0/8",
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"network": "::1/128",
|
||||
"action": "allow"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"headers": {
|
||||
"request": [
|
||||
{
|
||||
"op": "set",
|
||||
"name": "x-rustproxy-example",
|
||||
"value": "global"
|
||||
}
|
||||
],
|
||||
"response": [
|
||||
{
|
||||
"op": "remove",
|
||||
"name": "server"
|
||||
},
|
||||
{
|
||||
"op": "set",
|
||||
"name": "x-content-type-options",
|
||||
"value": "nosniff"
|
||||
}
|
||||
]
|
||||
},
|
||||
"vhosts": [
|
||||
{
|
||||
"id": "example-1",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"localhost"
|
||||
],
|
||||
"listener_ids": [
|
||||
"example-1-http"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "demo",
|
||||
"url": "http://127.0.0.1:9000",
|
||||
"allow_private": true,
|
||||
"preserve_host": true
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "off"
|
||||
}
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"id": "demo",
|
||||
"path_prefix": "/",
|
||||
"backend_id": "demo",
|
||||
"enabled": true,
|
||||
"headers": {
|
||||
"request": [
|
||||
{
|
||||
"op": "set",
|
||||
"name": "x-rustproxy-example",
|
||||
"value": "route"
|
||||
}
|
||||
],
|
||||
"response": [
|
||||
{
|
||||
"op": "set",
|
||||
"name": "x-rustproxy-demo",
|
||||
"value": "enabled"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "blocked-admin",
|
||||
"path_prefix": "/admin",
|
||||
"backend_id": "demo",
|
||||
"enabled": true,
|
||||
"acl": {
|
||||
"default": "deny",
|
||||
"rules": []
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "example-2",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"127.0.0.1"
|
||||
],
|
||||
"listener_ids": [
|
||||
"example-1-http"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "demo",
|
||||
"url": "http://127.0.0.1:9000",
|
||||
"allow_private": true,
|
||||
"preserve_host": true
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "off"
|
||||
}
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"id": "demo",
|
||||
"path_prefix": "/",
|
||||
"backend_id": "demo",
|
||||
"enabled": true,
|
||||
"headers": {
|
||||
"request": [
|
||||
{
|
||||
"op": "set",
|
||||
"name": "x-rustproxy-example",
|
||||
"value": "route"
|
||||
}
|
||||
],
|
||||
"response": [
|
||||
{
|
||||
"op": "set",
|
||||
"name": "x-rustproxy-demo",
|
||||
"value": "enabled"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "blocked-admin",
|
||||
"path_prefix": "/admin",
|
||||
"backend_id": "demo",
|
||||
"enabled": true,
|
||||
"acl": {
|
||||
"default": "deny",
|
||||
"rules": []
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "example-3",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"demo.localhost"
|
||||
],
|
||||
"listener_ids": [
|
||||
"example-1-http"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "demo",
|
||||
"url": "http://127.0.0.1:9000",
|
||||
"allow_private": true,
|
||||
"preserve_host": true
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "off"
|
||||
}
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"id": "demo",
|
||||
"path_prefix": "/",
|
||||
"backend_id": "demo",
|
||||
"enabled": true,
|
||||
"headers": {
|
||||
"request": [
|
||||
{
|
||||
"op": "set",
|
||||
"name": "x-rustproxy-example",
|
||||
"value": "route"
|
||||
}
|
||||
],
|
||||
"response": [
|
||||
{
|
||||
"op": "set",
|
||||
"name": "x-rustproxy-demo",
|
||||
"value": "enabled"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "blocked-admin",
|
||||
"path_prefix": "/admin",
|
||||
"backend_id": "demo",
|
||||
"enabled": true,
|
||||
"acl": {
|
||||
"default": "deny",
|
||||
"rules": []
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"listeners": {
|
||||
"endpoints": [
|
||||
{
|
||||
"id": "example-1-http",
|
||||
"name": "example-1 HTTP",
|
||||
"scope": "internal",
|
||||
"enabled": true,
|
||||
"binding": {
|
||||
"address": "127.0.0.1:8080",
|
||||
"tls": false,
|
||||
"http2": false,
|
||||
"http3": null
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
{
|
||||
"listeners": {
|
||||
"endpoints": [
|
||||
{
|
||||
"id": "example-1-http",
|
||||
"name": "example-1 HTTP",
|
||||
"scope": "internal",
|
||||
"enabled": true,
|
||||
"binding": {
|
||||
"address": "127.0.0.1:8080",
|
||||
"tls": false,
|
||||
"http2": false,
|
||||
"http3": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"server_header": {
|
||||
"mode": "custom",
|
||||
"value": "RustProxy/v0.5.0"
|
||||
},
|
||||
"compression": {
|
||||
"gzip": true,
|
||||
"br": true,
|
||||
"zstd": true,
|
||||
"deflate": false,
|
||||
"min_bytes": 1024
|
||||
},
|
||||
"cache": {
|
||||
"enabled": true,
|
||||
"max_bytes": 268435456,
|
||||
"max_object_bytes": 16777216,
|
||||
"max_entries": 4096,
|
||||
"transient_max_bytes": 67108864,
|
||||
"cold_queue_max_bytes": 33554432,
|
||||
"hot_eviction_max_objects": 64,
|
||||
"default_ttl_seconds": 0,
|
||||
"max_ttl_seconds": 86400,
|
||||
"bypass_query": false,
|
||||
"bypass_prefixes": [
|
||||
"/private"
|
||||
],
|
||||
"expose_status": true,
|
||||
"expose_hits": true,
|
||||
"expose_cache_status": true
|
||||
},
|
||||
"headers": {
|
||||
"request": [],
|
||||
"response": [
|
||||
{
|
||||
"op": "remove",
|
||||
"name": "x-powered-by"
|
||||
},
|
||||
{
|
||||
"op": "set",
|
||||
"name": "x-served-by",
|
||||
"value": "RustProxy"
|
||||
}
|
||||
]
|
||||
},
|
||||
"vhosts": [
|
||||
{
|
||||
"id": "example-1",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"localhost"
|
||||
],
|
||||
"listener_ids": [
|
||||
"example-1-http"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "demo",
|
||||
"url": "http://127.0.0.1:9000",
|
||||
"allow_private": true,
|
||||
"preserve_host": true
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "off"
|
||||
}
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"id": "demo",
|
||||
"path_prefix": "/",
|
||||
"backend_id": "demo",
|
||||
"enabled": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "example-2",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"127.0.0.1"
|
||||
],
|
||||
"listener_ids": [
|
||||
"example-1-http"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "demo",
|
||||
"url": "http://127.0.0.1:9000",
|
||||
"allow_private": true,
|
||||
"preserve_host": true
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "off"
|
||||
}
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"id": "demo",
|
||||
"path_prefix": "/",
|
||||
"backend_id": "demo",
|
||||
"enabled": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "example-3",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"demo.localhost"
|
||||
],
|
||||
"listener_ids": [
|
||||
"example-1-http"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "demo",
|
||||
"url": "http://127.0.0.1:9000",
|
||||
"allow_private": true,
|
||||
"preserve_host": true
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "off"
|
||||
}
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"id": "demo",
|
||||
"path_prefix": "/",
|
||||
"backend_id": "demo",
|
||||
"enabled": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"vhosts": [
|
||||
{
|
||||
"id": "demo",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"localhost",
|
||||
"127.0.0.1",
|
||||
"demo.localhost"
|
||||
],
|
||||
"listener_ids": [
|
||||
"demo-http"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "demo",
|
||||
"url": "http://127.0.0.1:9000",
|
||||
"allow_private": true,
|
||||
"preserve_host": true
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "off"
|
||||
}
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"id": "root",
|
||||
"path_prefix": "/"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"listeners": {
|
||||
"endpoints": [
|
||||
{
|
||||
"id": "demo-http",
|
||||
"name": "demo HTTP",
|
||||
"scope": "internal",
|
||||
"enabled": true,
|
||||
"binding": {
|
||||
"address": "127.0.0.1:8080",
|
||||
"tls": false,
|
||||
"http2": false,
|
||||
"http3": null
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"vhosts": []
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"listeners": {
|
||||
"endpoints": [
|
||||
{
|
||||
"id": "local-https",
|
||||
"name": "Local TLS / HTTP3",
|
||||
"scope": "internal",
|
||||
"enabled": true,
|
||||
"binding": {
|
||||
"address": "127.0.0.1:8443",
|
||||
"tls": true,
|
||||
"http2": true,
|
||||
"http3": {
|
||||
"alt_svc_max_age": 3600,
|
||||
"max_concurrent_connections": 512,
|
||||
"max_concurrent_bidistream": 100,
|
||||
"max_concurrent_unistream": 100,
|
||||
"max_idle_timeout": 10
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"vhosts": [
|
||||
{
|
||||
"id": "h3-demo",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"localhost"
|
||||
],
|
||||
"listener_ids": [
|
||||
"local-https"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "origin-a",
|
||||
"url": "http://127.0.0.1:9001",
|
||||
"allow_private": true
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "off"
|
||||
}
|
||||
},
|
||||
"cache": {
|
||||
"enabled": true,
|
||||
"expose_status": true,
|
||||
"expose_hits": true
|
||||
},
|
||||
"server_header": {
|
||||
"mode": "custom",
|
||||
"value": "RustProxy/v0.5.0"
|
||||
},
|
||||
"diagnostic_headers": {
|
||||
"request_id": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"cache": {
|
||||
"enabled": false
|
||||
},
|
||||
"compression": {
|
||||
"gzip": true,
|
||||
"br": true,
|
||||
"min_bytes": 1024
|
||||
},
|
||||
"pages": {
|
||||
"direct_ip": {
|
||||
"kind": "welcome",
|
||||
"status": 200
|
||||
}
|
||||
},
|
||||
"vhosts": [
|
||||
{
|
||||
"id": "mock",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"mock.localhost"
|
||||
],
|
||||
"listener_ids": [
|
||||
"mock-http"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "origin-a",
|
||||
"url": "http://127.0.0.1:9001",
|
||||
"allow_private": true,
|
||||
"preserve_host": true
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "http",
|
||||
"path": "/health",
|
||||
"interval_ms": 1000,
|
||||
"timeout_ms": 800,
|
||||
"slow_response_ms": 600,
|
||||
"fall": 2,
|
||||
"rise": 1
|
||||
},
|
||||
"slow_start_seconds": 0
|
||||
},
|
||||
"cache": {
|
||||
"enabled": true,
|
||||
"expose_status": true,
|
||||
"expose_hits": true,
|
||||
"expose_cache_status": true,
|
||||
"max_ttl_seconds": 300,
|
||||
"default_ttl_seconds": 30
|
||||
},
|
||||
"headers": {
|
||||
"response": [
|
||||
{
|
||||
"op": "set",
|
||||
"name": "x-site",
|
||||
"value": "mock"
|
||||
}
|
||||
]
|
||||
},
|
||||
"security_headers": {
|
||||
"nosniff": true
|
||||
},
|
||||
"pages": {
|
||||
"errors": {
|
||||
"503": {
|
||||
"kind": "html",
|
||||
"html": "<!doctype html><meta charset=\"utf-8\"><title>Maintenance</title><h1>Origin unavailable</h1><p>Please try again soon.</p>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"listeners": {
|
||||
"endpoints": [
|
||||
{
|
||||
"id": "mock-http",
|
||||
"name": "mock HTTP",
|
||||
"scope": "internal",
|
||||
"enabled": true,
|
||||
"binding": {
|
||||
"address": "127.0.0.1:8080",
|
||||
"tls": false,
|
||||
"http2": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"listeners": {
|
||||
"endpoints": [
|
||||
{
|
||||
"id": "private-http",
|
||||
"name": "Private applications",
|
||||
"scope": "internal",
|
||||
"enabled": true,
|
||||
"binding": {
|
||||
"address": "127.0.0.2:8181",
|
||||
"tls": false,
|
||||
"http2": false
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"vhosts": [
|
||||
{
|
||||
"id": "tinyauth-app",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"app.localhost"
|
||||
],
|
||||
"listener_ids": [
|
||||
"private-http"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "origin-a",
|
||||
"url": "http://127.0.0.1:9001",
|
||||
"allow_private": true
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "off"
|
||||
}
|
||||
},
|
||||
"cache": {
|
||||
"enabled": true,
|
||||
"expose_status": true,
|
||||
"expose_hits": true
|
||||
},
|
||||
"server_header": {
|
||||
"mode": "custom",
|
||||
"value": "RustProxy/v0.5.0"
|
||||
},
|
||||
"diagnostic_headers": {
|
||||
"request_id": false
|
||||
},
|
||||
"tinyauth": {
|
||||
"enabled": true,
|
||||
"url": "http://10.87.7.99:3000",
|
||||
"login_url": "https://auth.linuxiarz.pl/login",
|
||||
"allow_private": true,
|
||||
"address_allowlist": [
|
||||
"10.87.7.99/32"
|
||||
],
|
||||
"connect_timeout_seconds": 5,
|
||||
"timeout_seconds": 10,
|
||||
"response_headers": [
|
||||
"remote-user",
|
||||
"remote-email"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"tls": {
|
||||
"certificates": [
|
||||
{
|
||||
"id": "app",
|
||||
"hosts": [
|
||||
"app.localhost"
|
||||
],
|
||||
"cert_file": "app.pem",
|
||||
"key_file": "app.key"
|
||||
}
|
||||
]
|
||||
},
|
||||
"vhosts": [
|
||||
{
|
||||
"id": "example-1",
|
||||
"frontend": {
|
||||
"hosts": [
|
||||
"app.localhost"
|
||||
],
|
||||
"listener_ids": [
|
||||
"example-1-http"
|
||||
]
|
||||
},
|
||||
"backends": [
|
||||
{
|
||||
"id": "demo-dns",
|
||||
"url": "http://localhost:9000",
|
||||
"protocol": "http1",
|
||||
"allow_private": true,
|
||||
"preserve_host": true,
|
||||
"address_allowlist": [
|
||||
"127.0.0.0/8",
|
||||
"::1/128"
|
||||
]
|
||||
}
|
||||
],
|
||||
"load_balancing": {
|
||||
"health_check": {
|
||||
"mode": "off"
|
||||
}
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"id": "app",
|
||||
"path_prefix": "/",
|
||||
"backend_id": "demo-dns",
|
||||
"enabled": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"listeners": {
|
||||
"endpoints": [
|
||||
{
|
||||
"id": "example-1-http",
|
||||
"name": "example-1 HTTP",
|
||||
"scope": "internal",
|
||||
"enabled": true,
|
||||
"binding": {
|
||||
"address": "127.0.0.1:8080",
|
||||
"tls": false,
|
||||
"http2": false,
|
||||
"http3": null
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
{
|
||||
"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
|
||||
},
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user