Feersum
view release on metacpan or search on metacpan
eg/envoy-stream.yaml view on Meta::CPAN
private_key:
filename: /etc/ssl/private/server.key
alpn_protocols: ["h2", "http/1.1"]
filters:
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: ssl_to_feersum
cluster: feersum_proxy_protocol
# Timeouts
idle_timeout: 60s
#-------------------------------------------------------------------------
# Plain TCP passthrough (for testing)
#-------------------------------------------------------------------------
- name: tcp_front
address:
socket_address:
address: 0.0.0.0
port_value: 8080
filter_chains:
- filters:
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: tcp_to_feersum
cluster: feersum_tcp
idle_timeout: 60s
#===========================================================================
# Clusters (backends)
#===========================================================================
clusters:
#-------------------------------------------------------------------------
# TCP backend with PROXY Protocol v2 wrapper
#-------------------------------------------------------------------------
- name: feersum_proxy_protocol
type: STATIC
connect_timeout: 5s
lb_policy: ROUND_ROBIN
# Wrap upstream connection with PROXY Protocol v2
# Feersum will:
# - Set REMOTE_ADDR to real client IP
# - Set psgi.url_scheme to "https" (via dst_port=443)
transport_socket:
name: envoy.transport_sockets.upstream_proxy_protocol
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport
config:
version: V2
transport_socket:
name: envoy.transport_sockets.raw_buffer
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer
load_assignment:
cluster_name: feersum_proxy_protocol
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 127.0.0.1
port_value: 5000
# Add more for load balancing:
# - endpoint:
# address:
# socket_address:
# address: 127.0.0.1
# port_value: 5001
# Health check (TCP connect)
health_checks:
- timeout: 5s
interval: 10s
unhealthy_threshold: 3
healthy_threshold: 2
tcp_health_check: {}
#-------------------------------------------------------------------------
# Plain TCP backend (no PROXY Protocol)
#-------------------------------------------------------------------------
- name: feersum_tcp
type: STATIC
connect_timeout: 5s
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: feersum_tcp
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 127.0.0.1
port_value: 5000
#-------------------------------------------------------------------------
# Unix socket backend with PROXY Protocol v2
#-------------------------------------------------------------------------
- name: feersum_unix_proxy_protocol
type: STATIC
connect_timeout: 5s
lb_policy: ROUND_ROBIN
transport_socket:
name: envoy.transport_sockets.upstream_proxy_protocol
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport
config:
version: V2
transport_socket:
name: envoy.transport_sockets.raw_buffer
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer
load_assignment:
cluster_name: feersum_unix_proxy_protocol
endpoints:
- lb_endpoints:
- endpoint:
address:
pipe:
path: /tmp/feersum.sock
admin:
address:
socket_address:
address: 127.0.0.1
port_value: 9901
( run in 1.322 second using v1.01-cache-2.11-cpan-16aabcbfbcb )