问题描述:

在Web分布式系统中,一般会搭建复杂的load blance系统来提供高性能的web服务。

load blance有4层网络的,也有7层网络的。再经过这样的分布式网络之后,后面真正提供服务的

程序可能会丧失掉client的网络信息,也就是IP地址以及TCP端口。

解决方法:

为了解决这样的问题,存在着这样一种协议。叫做 Proxy Protocol。

正文

1. 协议实现

在三次握手之后,会增加一个TCP payload包,包payload长度48字节。如图:



示例,如下图所示的第四个包就是proxy protocol的包。


payload格式,根据V1,V2两个版本有所不同。如下是V1版本,是ASCII码格式:


2、nginx proxy的配置方法

3. nginx server的配置方法