1

サイトへのユニークな訪問者を見つけるのにこの問題が発生しています。サイトは AWS クラウドにデプロイされています。最初のヒットは、ワニス キャッシュ (リバース プロキシのタイプ) にルーティングするロード バランサーに移動し、次に apache Web サーバーにルーティングします。Apache conf ファイル内に以下の構成があります。

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \" %{forensic-id}n\"" varnishcombined

CustomLog ログ/access_log varnishcombined

私のワニスファイル内には次のものがあります:sub vcl_recv {

unset req.http.X-Forwarded-For;
set req.http.X-Forwarded-For = client.ip;

アクセス ログを確認すると、すべてのリクエストに、リクエストの送信元のクライアントの実際の IP ではなく、ロード バランサーの IP が含まれていることがわかります。実際、それはawsロードバランサーのIPです。

ワニスまたはロード バランサーのいずれかを削除すると、アクセス ログにクライアント IP アドレスをキャプチャする正しいエントリが記録されます。

誰かがこの状況に直面したことがありますか?

マンゲシュ

4

2 に答える 2

0

さて、修正は簡単です。私がしなければならなかったのは、ワニス設定ファイルから次の行を削除することだけでした:

unset req.http.X-Forwarded-For; set req.http.X-Forwarded-For = client.ip;

当初、私はバックエンドとしてワニスとアパッチしか持っていなかったので、クライアントIPを伝播するために上記の行が必要でした。ただし、ワニスプロキシの上にロードバランサーを追加すると、同じ行でクライアントIP伝播用にhttpヘッダーがトリミングされ、代わりにロードバランサーIpがクライアントとして設定されます。

マンゲッシュ

于 2013-03-21T14:28:54.557 に答える