複数のバックエンド IIS サーバーの前で AAR をリバース プロキシとして使用しようとしています。
IIS/AAR を実行しているサーバーに割り当てられた 1 つのパブリック IP アドレス
次に、ホスト名に応じていくつかのバックエンド サーバーのいずれかにリダイレクトするように、アウトバウンド URL 書き換えルールが設定されます。
ある程度は機能しますが、常にバックエンド サーバーのデフォルト サイト (ホスト名にマップされたものではない) を返すため、ホスト名 (HTTP_HOST) がプロキシ サーバーからバックエンド サーバーに渡されていないように見えます。
(ホストを編集してリバース プロキシをバイパスすることを確認したところ、バック エンド サーバーはホスト ヘッダーにバインドされた正しいサイトを返します)
これはルールの例です (192.168.0.99 は内部サーバー、site.myco.com はホスト名です)。
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://192.168.1.99/{R:1}" />
</rule>
</rules>
</rewrite>
サーバー変数を入れてみました
<!-- Guessing server.myco.com is hard coded -->
<serverVariables>
<set name="HTTP_HOST" value="server.myco.com" />
</serverVariables>
<!-- Guessing picked up dynamically from incoming request host header -->
<serverVariables>
<set name="HTTP_HOST" value="{HTTP_HOST}" />
</serverVariables>
しかし、悲しいかな、常にデフォルトのバインディングを返します - 何かアイデアはありますか?