6

多くの IP アドレスを持つホストで一時的な Django アプリを実行しています。を使用している場合manage.py runserver 0.0.0.0:5000、マシンの多くの IP アドレスのどれが実際にリクエストにヒットしたかをコードで確認するにはどうすればよいでしょうか?

または別の言い方をすると:

私のホストには IP アドレス10.0.0.110.0.0.2. runserver が をリッスンしている場合0.0.0.0、アプリケーションはユーザーがヒットしたかどうかをどのように知ることができますhttp://10.0.0.1/app/path/etchttp://10.0.0.2/app/path/etc?

Apache でそれを行っていた場合、Apache のような環境変数を使用できることは理解していますが、Apache は使用しSERVER_ADDRていません。

何かご意見は?

編集

詳しくは:

小さな Django アプリを使用してロード バランサーをテストしています。このアプリは多数の異なる IP でリッスンしており、ロード バランサーを介して送信されるリクエストに対してどの IP アドレスがヒットしたかを知る必要があるため、適切にバランスが取れていることを確認できます。

ユーザーがロードバランサーにヒットするために入力したものを返すためrequest.get_host()、オプションを使用できません。request.META

例: ユーザーがヒットhttp://10.10.10.10/fooし、リクエストをhttp://10.0.0.1/fooor http://10.0.0.2/foo-に転送しますが、サーバーがリッスンしている実際の IP ではなく、request.get_host()を返します。10.10.10.10

ありがとう、ベン

4

2 に答える 2

0

ロード バランサーが正しく機能することを目標としている場合、アプリケーション コードでこれを行うことは絶対的な要件ではないと思います。特定のインターフェイス (たとえば ) でリッスンできるネットワーク パケット アナライザーを使用してtcpdump -i <interface>、出力を確認できます。

于 2013-07-11T17:01:39.640 に答える