intelli_proxy
This server is a protocol-detecting entry port. It inspects the first bytes of each connection and forwards the connection to another server accordingly.
The loader requires both http_server and socks_server. Connections that
cannot be classified before protocol_detection_timeout expires are closed.
The following common keys are supported:
listen
required, type: tcp listen
Listening configuration for this server.
The instance count setting will be ignored if listen_in_worker is correctly enabled.
http_server
required, type: str
Name of the next http_proxy server to which accepted connections are
forwarded.
socks_server
required, type: str
Name of the next socks_proxy server to which accepted connections are
forwarded.
protocol_detection_timeout
optional, type: humanize duration
Timeout for protocol detection on each connection.
If timeout, the connection will be closed silently.
default: 4s
The legacy keys protocol_detection_channel_size and
protocol_detection_max_jobs are accepted by the loader but ignored by the
current config implementation.
proxy_protocol
optional, type: proxy protocol version
PROXY Protocol version expected on incoming TCP connections.
If set, connections with no matched PROXY Protocol message will be dropped.
Note
The ingress_network_filter option on this server always applies to
the real socket client address.
default: not set, which means PROXY protocol won’t be used
Added in version 1.7.28.
proxy_protocol_read_timeout
optional, type: humanize duration
Timeout for reading a complete PROXY Protocol message.
default: 5s
Added in version 1.7.28.
Example
listen: 0.0.0.0:1080
http_server: http-in
socks_server: socks-in
protocol_detection_timeout: 2s