負荷分散 - NGINX は TCP をバックエンド サーバーに転送しますが、バックエンド サーバーはどのようにしてユーザーの実際の IP アドレスを取得しますか? NGINX サーバーとバックエンド サーバーが同じネットワーク セグメント内にありません
高洛峰
高洛峰 2017-06-16 09:19:41
0
1
1846

最近、TCP リクエストをトランジット サーバー経由で実際のバックエンド サーバーに転送する必要がありますが、現在発生している問題は、バックエンド サーバーがユーザーの実際の IP を取得できないことです。

これは HTTP ではなく TCP 接続であることに注意してください。これは NGINX のストリーム モジュールの関数です。オンラインで多くの情報を確認しました。NGINX の公式ドキュメントには、解決できると記載されています。ただし、詳細な操作ガイドは提供されていません。既に実装している友人が質問に回答してくれることを願っています。また、LVS が負荷として使用されている場合、バックエンド サーバーはマシンがクライアントの実際の IP を取得できますか?同じネットワークセグメント内にないのでしょうか?可能であれば、関連記事へのリンクをお願いします。

参考ドキュメント:
https://nginx.org/en/docs/str...
https://www.nginx.com/blog/tc...

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(1)
黄舟

LVS は、デフォルトでは nat または fullnat モードで実際の IP を取得できません。

Alibaba の fullnat は、TCP オプションを通じて実際の IP をバックエンドに渡すことができます。

nginx のストリーム モジュールは、プロキシ プロトコル https://www.haproxy.org/downl... を通じて実際の IP を渡すことができます。

どちらにも共通点が 1 つあります:

この IP を取得するには、バックエンドでコードを変更する必要があります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート