代理协议
此监听器过滤器添加了对 HAProxy 代理协议 的支持。
在此模式下,假设下游连接来自将原始坐标(IP、端口)放入连接字符串中的代理。Envoy 然后提取这些坐标并将其用作远程地址。
在代理协议 v2 中,存在可选的扩展 (TLV) 标签的概念。如果将 TLV 的类型添加到过滤器的配置中,TLV 将作为具有用户指定键的动态元数据发出。
此实现支持版本 1 和版本 2,它在每个连接的基础上自动确定存在哪种版本。
注意
如果启用了过滤器,则连接上必须存在代理协议(版本 1 或版本 2)。该标准不允许解析以确定其是否存在。但是,可以配置过滤器以允许在没有代理协议标头的情况下接受连接(违反标准)。请参见 allow_requests_without_proxy_protocol.
如果存在协议错误或不支持的地址族(例如 AF_UNIX),连接将被关闭并抛出错误。
此过滤器应使用类型 URL
type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol配置。
统计
此过滤器发出以下一般统计信息,位于 proxy_proto.[<stat_prefix>.] 下。
名称 |
类型 |
描述 |
|---|---|---|
not_found_disallowed |
计数器 |
不包含 PROXY 协议标头且被拒绝的连接总数。 |
not_found_allowed |
计数器 |
不包含 PROXY 协议标头,但由于 allow_requests_without_proxy_protocol 而被允许的连接总数。 |
该过滤器还为每个匹配的 PROXY 协议版本发出位于 proxy_proto.[<stat_prefix>.]versions.<version> 下的统计信息。代理协议版本包括 v1 和 v2。
名称 |
类型 |
描述 |
|---|---|---|
found |
计数器 |
找到并正确解析了 PROXY 协议标头的连接总数。 |
disallowed |
计数器 |
由于 disallowed_versions 而被拒绝的 |
error |
计数器 |
PROXY 协议标头格式错误(且连接被拒绝)的连接总数。 |
该过滤器还发出以下旧版统计信息,位于其自身范围内,不包括 stat_prefix
名称 |
类型 |
描述 |
|---|---|---|
downstream_cx_proxy_proto_error |
计数器 |
具有代理协议错误的连接总数,即 |
注意
建议使用上面更详细的非旧版统计信息。