0

リバース プロキシを使用する HTTP アクセラレーション ソリューションがあります。サーバーにクライアント IP を提供するために、HTTP アクセラレーション ソリューションにプロキシ プロトコルのサポートを追加しようとしています。HTTP アクセラレーション ソリューション エンドポイント自体をサーバーのゲートウェイにすることはできないため、サーバーにプロキシ プロトコル サポートを追加するか、それらの前に HA プロキシを追加する必要があります。

現在、プロキシ プロトコルの状態は次のとおりです。

受信機は、プロトコルのバージョン 1 とバージョン 2 の両方をサポートするように構成できます。プロトコルのバージョンを特定するのは簡単です:

- 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.

私のサーバーは主にプロキシプロトコルをサポートするnginxです。私のhttpサーバーのいくつかはプロキシプロトコルをサポートしていませんが

私の質問は、サーバーがプロトコルをサポートしていないかどうか、プロキシ プロトコル ヘッダーを含む TCP/HTTP ペイロードを適切に解析できるかどうかです。

同じメモで、プロキシプロトコル仕様にTCP/Ip ヘッダーオプションとしてそれがない理由を知りたいです。そのようにして、オプションを理解していないサーバーは、オプションを理解していないサーバーに対して完全に透過的にすることを無視します。サポートしません。そして、プロトコルをサポートするサーバーは、プロキシプロトコルオプションを持たないパケットをドロップします

4

2 に答える 2

1

私の質問は、サーバーがプロトコルをサポートしていないかどうか、プロキシ プロトコル ヘッダーを含む TCP/HTTP ペイロードを適切に解析できるかどうかです。

いいえ、プロキシ プロトコルをサポートしていないサーバーは、有効な HTTP メソッドで開始されていないため、リクエストを HTTP として解析できません。

send-proxyプロキシ プロトコルをサポートしていないバックエンド サーバーのディレクティブは省略してください。などのヘッダーで渡さない限り、クライアントに関する情報が失われることに注意してくださいX-Forwarded-For

于 2018-02-13T19:49:03.283 に答える