IISニースの背後にあるサーバー " Cloudflare "リバースプロキシを使用しています。
このリバースプロキシファームは、HTTPヘッダーをサーバーに公開します。つまりHTTP_CF_CONNECTING_IP
です。 Cloudflareに接続するIPが含まれているので、実際に誰が接続しているかを確認できます。
もちろん、これらのIPをログに記録したいと思います。 Cloudflareには、IIS REWRITEオプションを使用してweb.config
サーバー変数を変更する小さなREMOTE_ADDR
スクリプトがあります。
<rules>
<clear />
<rule name="Replace REMOTE_ADDR with CF_CONNECTING_IP" enabled="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_CF_CONNECTING_IP}" pattern="\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b" />
</conditions>
<serverVariables>
<set name="REMOTE_ADDR" value="{HTTP_CF_Connecting_IP}" />
</serverVariables>
<action type="None" />
</rule>
</rules>
これは実際にロギングに影響しますか?また、これは、ASP.NETアプリケーションやPHPスクリプトなど、実行時にリクエストIPを確認したときに取得するものに影響しますか?
もしそうなら、なぜこれが存在するのですか: http://devcentral.f5.com/weblogs/Joe/archive/2009/12/23/x-forwarded-for-http-module-for-iis7-source -included.aspx
IIS rewriteを使用できる場合、これにはどのような利点がありますか?
はい、Cloudflareからのこのweb.config「スクリプト」は、プロキシに接続したクライアント(接続)ユーザーのIPアドレスをキャプチャし、サーバー変数REMOTE_ADDRを介して宛先サーバーに配信することにより、ロギングに影響を与えます。それ以外の場合は、プロキシサーバーのIPアドレスが要求元のIPアドレスとして表示されます。
これはASP.NETアプリケーションでは機能すると思いますが、PHPアプリケーションでは機能しません。これらのアプリケーションでは、次のようなものが必要になると思います。
http://drupal.org/project/cloudflare (Drupal固有であることに気づきましたが、基本的にはPHPバージョンですあなたがリストしたASP.NETの方法の)
F5ソリューションが存在する理由は、プロキシサーバー側でこれを処理するためです。ここにリストされているASP.NETソリューションとPHP Drupal)にリストされているソリューションは、CloudFlareが転送している値(HTTP_CF_Connecting_IP)を利用しているようで、意図されています宛先サーバーで使用されます。
あなたがこの質問をしてからしばらく経ちましたが、あなたがすでに答え/解決策に到達していても、この答えは他の人を助けるかもしれないと思いました。