proxy Binding
proxy Binding
Zilla runtime proxy binding.
proxy_server:
type: proxy
kind: server
routes:
- when:
- transport: stream
family: inet4
destination:
port: 443
exit: tls_server
Summary
Defines a binding with proxy
protocol support, with server
or client
behavior.
The server
kind proxy
binding decodes Proxy v2
protocol on the inbound network stream, producing higher level application streams for each request.
The client
kind proxy
binding receives inbound application streams and encodes each as a network stream via Proxy v2
protocol.
Conditional routes based on the network transport type or network addresses are used to route these streams to an exit
binding.
Configuration
kind*
enum
[ "client", "server" ]
Behave as proxy
client
or server
.
exit
string
Default exit binding when no conditional routes are viable.
exit: echo_server
routes
array
ofobject
Conditional proxy
-specific routes.
routes:
- when:
- transport: stream
family: inet4
destination:
port: 443
exit: tls_server
routes[].guarded
object
as named map ofstring:string
array
List of roles required by each named guard to authorize this route.
routes:
- guarded:
test:
- read:items
routes[].when
array
ofobject
List of conditions (any match) to match this route.
Read more: When a route matches
when[].transport
enum
[ "stream", "datagram" ]
Transport type.
when[].family
enum
[ "inet", "inet4", "inet6", "unix" ]
Address family.
when[].source
object
Source address.
source.host
string
Hostname or IP address.
source.port
integer
Port number.
when[].destination
object
Destination address.
destination.host
string
Hostname or IP address.
destination.port
integer
Port number.
routes[].exit*
string
Next binding when following this route.
routes:
- when:
...
exit: echo_server
* required