2016-07-27 7 views
0

Node.jsプロセスへのTCPトラフィックのバランスをとるELBがあります。 ELBがTCP接続のバランシングを行っているとき、HTTP接続のようにX-Forwarded-Protoヘッダーは送信されません。しかし、接続がSSL/TLSを使用しているかどうかを知る必要があるので、安全な接続でない場合はノードプロセスからのリダイレクトで応答できます。ELB passプロトコルをnode.jsプロセス(Elastic Beanstalk)にする方法

TCP接続のバランシング時にELBがこのヘッダを送信する方法はありますか?あなたが接続関連の情報を得るためにあなたのELBのプロキシプロトコルを設定することができます

おかげ

+0

ここにこの問題が発生した場合は、私はここでこのproblmへの非常に簡単な解決策を見つけました:http://stackoverflow.com/a/33530080/949845 – boom

答えて

0

。 HTTPの場合、ELBはクライアント情報を伝えるヘッダーを追加しますが、TCPの場合、AWS ELBは変更なしでクライアントのヘッダーを単に通過するだけで、バックエンドサーバーはクライアント接続情報を失いますあなたの場合。

ELBのプロキシ制御を有効にするには、API経由で行う必要があります。現在、UI経由で行う方法はありません。

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html

上記のドキュメントは、これを行う方法のステップバイステップガイドですが、私はその情報が時間の経過とともに変化する可能性があるとして、ここで同じを貼り付けする必要はありません。

EDIT:結局のところ

、AmazonはSSL情報を離れて与えていないだけでプロキシプロトコルのバージョン1を実装しています。しかし、クライアントから要求されたポート番号を与え、要求がポート443を超えていればSSLのようなプロセスを開発することができます。私はそれが間接的であり、devopと開発者の間のハードコーディングと調整を必要としているので間接的ではありません...今のところ唯一の方法だと思います... AWS ELBがSSL情報を持つプロキシプロトコルのバージョン2すぐに。

+0

私が読んできたことから、プロキシプロトコルはクライアント接続のip/portを転送します。接続がSSL/TLSを使用しているかどうかを確認することができます。プロキシプロトコルで正確に何が送信されますか?助けてくれてありがとう。 – boom

+0

"プロトコル"の部分は、私がこれを自分で試していない正直言って、あなたに伝える必要があります。 –

+0

プロキシプロトコルヘッダーは、 'PROXY TCP4 198.51.100.22 203.0.113.7 35646 80 \ r \ n 'のように見えます。IPv4上の安全なTCP接続のために' SSL4' instadが ' – boom

関連する問題