
nginx リバース プロキシの背後に IIS7 サーバーが配置されています。
リバース プロキシは、訪問者の IP アドレスを含む標準の「HTTP_X_FORWARDED_FOR」ヘッダーを送信していますが、IIS7 ログには nginx サーバーの IP アドレスのみが記録されています (これは理にかなっていますが、私が望んでいることではありません)。
IIS7 に、代わりに「HTTP_X_FORWARDED_FOR」ヘッダーをログに記録するように (または追加でログに記録するように) 指示するにはどうすればよいですか?
(注: 私は Windows 管理者ではなく Linux 管理者なので、明確な指示とリンクをいただければ幸いです)
答え1
これは IIS に組み込まれていませんが、この機能を実行するモジュールをインストールできます。これは ARR ヘルパーと呼ばれますが、IIS の前のどのプロキシでも機能します。
答え2
カスタム ヘッダーをログに記録できる IIS7 モジュールが追加されました。
方法: http://learn.iis.net/page.aspx/579/advanced-logging-for-iis-70---カスタムログ/
答え3
この質問には iis-7 のタグが付けられていますが、X-Forwarded-For と IIS で検索するとこれが一番ヒットするので、先に進んで IIS 8.5 に関する情報を提供しようと思いました。
IIS 8.5 以降
IIS 8.5では、強化されたログ記録管理者が X-Forwarded-For などの HTTP リクエスト ヘッダーを簡単にログに記録できる機能。この回答はリンクされたページから引用したものです。
開けるIIS マネージャー。
サイトまたはサーバーを選択します接続ペインでダブルクリックログ記録拡張ログ機能はサイトレベルのログ機能でのみ使用可能です。接続ペインで、カスタムフィールドのセクションW3C ログフィールドダイアログは無効です。
の中にフォーマットフィールドの下ログファイル、 選択するウィキペディアクリックしますフィールドを選択...。
の中にW3C ログフィールドダイアログでクリックフィールドを追加...拡張ログ機能は、サイトレベルのログ機能でのみ利用可能です。接続ペイン、次にフィールドを追加...無効になっています。
の中にカスタムフィールドを追加ダイアログで、フィールド名たとえば、ログ ファイル内のカスタム フィールドを識別する場合などです
c-ip-original
。フィールド名にはスペースを含めることはできません。選択するリクエストヘッダーの中にソースの種類リスト。
入力
X-FORWARDED-FOR
くださいソース。クリックわかりました。
クリックわかりました。
クリック適用するの中に行動新しい構成を適用するためのペイン。
カスタム フィールドが構成されると、IIS は、ファイルにカスタム フィールドが含まれていることを示すためにファイル名に "_x" を追加した新しいテキスト ログ ファイルを作成します。
すべてのカスタム フィールドから収集されるデータの合計サイズは 65,536 バイトを超えることはできません。合計が 65,536 バイトを超えると、IIS によってデータが切り捨てられます。