匿名希望さん、こんにちは。
私は、AWSの中の人ではなく、 AWSの細かな話をするには相応しくないので、 一般的なNLB(Network Load Balancer、負荷分散装置)について 説明することにします。 AWSのNLBと違いがある場合はご容赦ください。
NLBを実装する方法は複数ありますが、 HTTP proxyの仕組みを用いて実装することが多いと思うので ここではHTTP proxyで実装するケースで説明しましょう。
HTTP proxyの仕組みを用いたNLBは 下記のように動きます。 クライアント <-> proxy <-> サーバ 具体的には、 まず、クライアントはproxyとの間でTCPコネクションを張り TCPコネクションのデータとしてHTTPメッセージを proxyに対して送ります。 すると、proxyがHTTPメッセージを受け取り、 転送先のHTTPサーバに対してTCPコネクションを張り、 そこへHTTPメッセージを転送します。
そのとき、proxyは HTTPメッセージのヘッダ部分にIPアドレスを表す情報を追加して転送し、 それが、サーバに伝わります。
この辺の詳しい仕組みを知りたければ proxyの仕組みを解説したページを探すとよいでしょう。 その際、"X-Forwarded-For"というキーワードで検索すると、 IPアドレスの転送を説明したページがヒットすると思います。
More information about text formats
HTTPメッセージのヘッダにIPアドレスを書いてサーバに伝えます。
匿名希望さん、こんにちは。
私は、AWSの中の人ではなく、
AWSの細かな話をするには相応しくないので、
一般的なNLB(Network Load Balancer、負荷分散装置)について
説明することにします。
AWSのNLBと違いがある場合はご容赦ください。
NLBを実装する方法は複数ありますが、
HTTP proxyの仕組みを用いて実装することが多いと思うので
ここではHTTP proxyで実装するケースで説明しましょう。
HTTP proxyの仕組みを用いたNLBは
下記のように動きます。
クライアント <-> proxy <-> サーバ
具体的には、
まず、クライアントはproxyとの間でTCPコネクションを張り
TCPコネクションのデータとしてHTTPメッセージを
proxyに対して送ります。
すると、proxyがHTTPメッセージを受け取り、
転送先のHTTPサーバに対してTCPコネクションを張り、
そこへHTTPメッセージを転送します。
そのとき、proxyは
HTTPメッセージのヘッダ部分にIPアドレスを表す情報を追加して転送し、
それが、サーバに伝わります。
この辺の詳しい仕組みを知りたければ
proxyの仕組みを解説したページを探すとよいでしょう。
その際、"X-Forwarded-For"というキーワードで検索すると、
IPアドレスの転送を説明したページがヒットすると思います。