I have a HTTP Acceleration solution that use reverse proxy. In order the provide the client IP to the server I'm trying to add proxy protocol support in my HTTP Acceleration solution. Although as the HTTP Acceleration solution endpoint itself can not be the gateway for my servers, I need to add Proxy Protocol support in the server or add HA Proxy in front of them.
Currently for Proxy protocol states:
A receiver may be configured to support both version 1 and version 2 of the protocol. Identifying the protocol version is easy :
- if the incoming byte count is 16 or above and the 13 first bytes match
the protocol signature block followed by the protocol version 2 :
\x0D\x0A\x0D\x0A\x00\x0D\x0A\x51\x55\x49\x54\x0A\x02
- otherwise, if the incoming byte count is 8 or above, and the 5 first
characters match the US-ASCII representation of "PROXY" then the protocol
must be parsed as version 1 :
\x50\x52\x4F\x58\x59
- otherwise the protocol is not covered by this specification and the
connection must be dropped.
My server are mainly nginx which have proxy protocol support. Although few of my http server doesn't support proxy protocol
My question is if server doesn’t support the protocol, whether they can parse the TCP/HTTP payload properly which includes the Proxy Protocol header ?
On the same note I would like to know why not the proxy-protocol specification have it as TCP/Ip header options : In that way the Server that doesn't understand the option will just ignore making it completely transparent to the server who doesn't support it. And those server who supports the protocol will drop packets that doesn't have the proxy-protocol option

No, servers that don't support the proxy protocol will fail to parse the request as HTTP, because it does not begin with a valid HTTP method.
Simply leave out the
send-proxydirective for the backend servers that do not support the proxy protocol. Keep in mind that you will lose information about the client, unless you pass them in a header such asX-Forwarded-For.