目录
在现代网络架构中,代理服务器发挥着至关重要的作用,可以提供缓存、负载均衡和安全等功能。代理服务器因为位于客户端和真实服务器之间,会接收来自客户端的原始连接,并向真实服务器发起新的连接,这就导致真实服务器无法直接获取到客户端的原始 IP 地址和其他相关信息,真实服务器所有信息都显示为来自代理服务器。
为了解决这个问题,HAProxy 提出了一个称为“PROXY protocol”的解决方案。通过使用该方案,代理服务器可以将客户端的真实信息封装在一个简单的头部中,并传递给后端服务器。这样,后端服务器就可以获取到客户端的 IP 地址、端口以及其他可能有用的信息,而无需对现有网络结构做出重大调整。
什么是 PROXY protocol?
PROXY protocol 是一种用于在代理服务器和后端服务器之间传输客户端连接信息的协议,旨在解决由于使用代理而导致的真实客户端信息丢失的问题。
工作原理
PROXY protocol 是应用在传输层的,位于传输协议(比如 TCP)之上。当客户端与服务器建立连接时,会在连接中添加一个包含了客户端连接信息的头信息。
具体来说,代理服务器在接收到来自客户端的连接请求后,会在与后端服务器建立连接之前,先发送一个 PROXY protocol 头信息。这个头信息详细记录了源 IP 地址、目标 IP 地址、源端口和目标端口等关键信息。后端服务器在接收到这些信息后,便可以根据客户端的实际信息进行日志记录、访问控制等操作。这样的设计使得后端服务器能够更准确地识别和处理来自客户端的请求。