加载中...
PROXY 协议由 HAProxy 提出,用于在负载均衡或代理转发连接时把客户端真实地址传递给后端。它在连接建立后先发送一段头部携带原始源目信息,解决了经过代理后源 IP 丢失的问题。

| 中文名 | 代理协议 |
| 英文名 | PROXY protocol |
| 提出方 | HAProxy |
| 工作层次 | TCP 连接层 |
| 核心用途 | 传递真实客户端 IP |
PROXY 协议是一种由 HAProxy 提出的轻量协议,用于在负载均衡器或反向代理转发连接时,把客户端的真实源地址和端口等信息传递给后端服务器,解决代理转发后源 IP 被替换的问题。
当客户端经过负载均衡或代理访问后端时,后端看到的源地址往往是代理的地址,原始客户端地址丢失,给日志记录、访问控制和限流带来困难。对 HTTP 可以用转发头传递,但对非 HTTP 的 TCP 连接则缺乏通用手段。PROXY 协议应运而生,在连接建立后、业务数据之前,由代理先发送一小段头部,携带原始连接的地址信息。
PROXY 协议广泛用于四层负载均衡、TLS 终结前置代理和反向代理链路,让后端应用能拿到真实客户端 IP,用于日志审计、地域识别、访问控制和限流。Nginx、HAProxy 以及许多云负载均衡都支持该协议。
问:PROXY 协议和 HTTP 的转发头有什么区别?答:转发头是 HTTP 应用层机制,只适用于 HTTP;PROXY 协议工作在 TCP 连接前部,适用于任意基于 TCP 的协议,包括数据库、邮件等非 HTTP 服务。
问:后端没开启解析会怎样?答:后端会把 PROXY 头部当作正常业务数据处理,导致协议解析错误或连接异常,因此发送端和接收端必须协商一致开启。

| 中文名 | 代理协议 |
| 英文名 | PROXY protocol |
| 提出方 | HAProxy |
| 工作层次 | TCP 连接层 |
| 核心用途 | 传递真实客户端 IP |
登录 后参与讨论
暂无讨论,来发表第一条评论吧