REMOTE_ADDR サーバー変数を使用してメトリックのクライアント IP を記録する Web サイトが多数あります。これらのサイトのホスティングを負荷分散された環境に移行することで、REMOTE_ADDR でロード バランサー IP のみを取得するようになりました。私は HTTP_X_FORWARDED_FOR の使用とその仕組みを十分に認識しており、アクセスすることができます。私の推奨する解決策は、アプリケーションを更新して使用することです。
ただし、ここにいる権限は、すべての Web サイトを更新する必要を避けたいと考えています :( その間、代替案を検討しています。
最終的に、これは、リクエストがアプリケーションに到達する前に、REMOTE_ADDR を HTTP_X_FORWARDED_FOR に置き換える何らかの方法を見つけることを意味します。
ここで別のacole76の質問からのアドバイスを使用して、URL Rewrite 2.0モジュールを機能させようとしています:
IIS 7 書き換え web.config serverVariables ディレクティブがサブフォルダーで機能しない
私の web.config は実質的に彼のものと同じです:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="RemoteHostRewrite">
<match url="(.*)" ignoreCase="true" />
<serverVariables>
<set name="REMOTE_ADDR" value="4.3.2.1" />
</serverVariables>
<action type="Rewrite" url="{R:0}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
ここでは、テスト用にハードコードされた値 4.3.2.1 を使用しています。最終的には、実際の値 {HTTP_X_FORWARDED_FOR} に置き換えます。
URLにファイル名が含まれている場合、これはまったく問題なく機能します。URL がファイル名で終わらない場合は機能しません。
例: mysite.local/default.aspx - 動作します
mysite.local/ - 機能しません
mysite.local/folder/default.aspx - 動作します
mysite.local/folder/ - 機能しません
私は困惑しています!誰でも助けを提供できますか?