2017-03-01 8 views
0

IIS 8の背後にTomcat 8が設定されています。また、CDNサービスが有効になっています。CDNを使用したTomcat RemoteIpValve構成

ホストRemoteIpValveはログインが

org.apache.catalina.valves.RemoteIpValve.invoke Incoming request /api/service/dealer/getStates with originalRemoteAddr '127.0.0.1', originalRemoteHost='127.0.0.1', originalSecure='false', originalScheme='http' will be seen as newRemoteAddr='121.244.190.83', newRemoteHost='121.244.190.83', newScheme='http', newSecure='false' 

アクセスログの設定

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
       prefix="web.hyundai.co.in_access_log" suffix=".txt" 
       pattern="x-forwarded-for : %{x-forwarded-for}i %h %t &quot;%r&quot; %s %b"/> 

そして、アクセスログに

x-forwarded-for : 121.243.37.18, 121.244.190.83 127.0.0.1 [01/Mar/2017:09:02:52 +0530] "GET /api/service/dealer/getStates HTTP/1.1" 200 436 
として示し

<Valve className="org.apache.catalina.valves.RemoteIpValve"   
     remoteIpHeader="x-forwarded-for" 
     proxiesHeader="x-forwarded-by" 
     protocolHeader="x-forwarded-proto"/> 

として有効になっています

今、tomcatは実際のクライアントIP 121.243.37.18を取得せず、代わりにCDNサーバーIPを選択します。 CDNサーバーIPをプロキシとして追加することはできません。なぜなら、多数のCDNエッジサーバーが存在するからです。正しいリモートIPアドレスを取得するためにtomcatを設定する方法

答えて

0

CDNは「X-Real-IP」ヘッダーを提供していますか? x-forwarded-forは、複数のプロキシを経由するIPでもかまいません。

+0

x-forwardedは、実際のクライアントIPとCDN IPを含むカンマ区切りのIPを与えていました。しかし何らかの理由でTomcat RemoteIPValveが実際のクライアントIPではなく最後の値(CDN IP)を使用していました。だから私は顧客のヘッダーをtrue-client-ipに追加して実際のリモートクライアントIPを渡し、それがうまく動作するように私のCDNに依頼しました。 – Mukun

関連する問題