1

IIS 7.5 をリバース プロキシとしてセットアップして、ARR 3 経由で Tomcat 7 に接続しようとしています。

何らかの理由で、IIS が要求を転送するとき、x-forwarded-for ヘッダーにリモート ポートが含まれているため、次のような表示ではなく、123.124.125.126 と表示されます。

残念ながら、これは IP アドレスのみを必要とする RemoteIpValve では機能しません。

IIS からポートを削除する方法はありますか? またはRemoteIpValveで?

更新:以下のコマンドを実行してみましたが、applicationHost.config が更新されたことがわかりますが、ポート番号はまだ表示されています (IIS を再起動しました):

appcmd.exe set config -section:system.webServer/proxy /includePortInXForwardedFor:"false" /commit:apphost

ありがとう!

4

1 に答える 1

0

私は次の回避策を使用することになりました:

IIS では、%System32%/inetsrv/config/applicationHost.config で、system.webServer/rewrite/globalRules/rule [name=ARR*] に次のスニペットを追加しました。

<severVariables>
  <set name="HTTP_X_REMOTE_ADDR" value="{REMOTE_ADDR}" />
</severVariables>

次に、その名前を Tomcat の server.xml の RemoteIpValve に指定しました。

<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="x-remote-addr" />

X-Forwarded-For の代わりに新しく追加されたヘッダーを使用するには

于 2013-10-04T23:43:57.137 に答える