{ "routes": [ { "id": "https-passthrough", "name": "HTTPS Passthrough to Backend", "match": { "ports": 443, "domains": "backend.example.com" }, "action": { "type": "forward", "targets": [ { "host": "10.0.0.1", "port": 443 } ], "tls": { "mode": "passthrough" } }, "priority": 10, "enabled": true }, { "id": "https-terminate", "name": "HTTPS Terminate for API", "match": { "ports": 443, "domains": "api.example.com" }, "action": { "type": "forward", "targets": [ { "host": "localhost", "port": 8080 } ], "tls": { "mode": "terminate", "certificate": "auto" } }, "priority": 20, "enabled": true }, { "id": "http-redirect", "name": "HTTP to HTTPS Redirect", "match": { "ports": 80, "domains": ["api.example.com", "www.example.com"] }, "action": { "type": "forward", "targets": [ { "host": "localhost", "port": 8080 } ] }, "priority": 0 }, { "id": "load-balanced", "name": "Load Balanced Backend", "match": { "ports": 443, "domains": "*.example.com" }, "action": { "type": "forward", "targets": [ { "host": "backend1.internal", "port": 8080 }, { "host": "backend2.internal", "port": 8080 }, { "host": "backend3.internal", "port": 8080 } ], "tls": { "mode": "terminate", "certificate": "auto" }, "loadBalancing": { "algorithm": "round-robin", "healthCheck": { "path": "/health", "interval": 30, "timeout": 5, "unhealthyThreshold": 3, "healthyThreshold": 2 } } }, "security": { "ipAllowList": ["10.0.0.0/8", "192.168.0.0/16"], "maxConnections": 1000, "rateLimit": { "enabled": true, "maxRequests": 100, "window": 60, "keyBy": "ip" } }, "headers": { "request": { "X-Forwarded-For": "{clientIp}", "X-Real-IP": "{clientIp}" }, "response": { "X-Powered-By": "RustProxy" }, "cors": { "enabled": true, "allowOrigin": "*", "allowMethods": "GET,POST,PUT,DELETE,OPTIONS", "allowHeaders": "Content-Type,Authorization", "allowCredentials": false, "maxAge": 86400 } }, "priority": 5 } ], "acme": { "email": "admin@example.com", "useProduction": false, "port": 80 }, "connectionTimeout": 30000, "socketTimeout": 3600000, "maxConnectionsPerIp": 100, "connectionRateLimitPerMinute": 300, "keepAliveTreatment": "extended", "enableDetailedLogging": false }