web-dev-qa-db-ja.com

ホストヘッダーを保持するためのIISリバースプロキシの設定

私はIIS多くのサイトとAPIをホストしているサーバーを持っています。これらのサイトにはConfluenceとJiraのインスタンスが含まれています。これらの製品は実際に独自のWebサーバーを実行しているため、Application Request RoutingおよびUrl Rewriteモジュールはdocuments.example.com' and 'jira.example.com' tolocalhost:8080 andlocalhost:8090`への着信リクエストをリバースプロキシするために使用されています-confluenceおよびjiraインスタンスが実行されています。

今、私はリバースプロキシを小さなsimple-storage-server(s3)api(minio)にセットアップしようとしています-これはlocalhost:9000でホストされています-s3プロトコルでは、Hostヘッダーがメッセージ認証コードの一部である必要があります。

ただし、Application Request RoutingがURL書き換えルールに従って要求を再ルーティングする場合、新しい宛先ヘッダーを反映するようにホストヘッダーも書き換えます。

これはsystem.webServer.proxy:preserveHostHeadersを設定することで無効にできますが、ARRはサイトレベルではなくサーバーを実行するため、ApplicationHost.configでのみ使用できます。

だから今私は難問を抱えています:

この設定を設定した場合、MACでホストヘッダーを使用するREST APIは機能しますが、サポートされているリバースプロキシ構成としてのConfluenceおよびJiraは、ホストヘッダーの書き換えを期待しています。

参考までに、このセットを使用すると、ホストヘッダーを保持できます

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -preserveHostHeader:true /commit:apphost
2
Chris Becke

私は同じ問題で苦労しています。私は気に入らない解決策があります(そして、あなたも気に入らないでしょう)が、それはうまくいきます。

PreserveHostHeadersを有効にすると、doでホストヘッダーを置き換えたい場合に、送信URL書き換えルールを追加してすべてのケースを再マッピングできます。

1