私はIIS多くのサイトとAPIをホストしているサーバーを持っています。これらのサイトにはConfluenceとJiraのインスタンスが含まれています。これらの製品は実際に独自のWebサーバーを実行しているため、Application Request RoutingおよびUrl Rewriteモジュールはdocuments.example.com' and 'jira.example.com' to
localhost:8080 and
localhost: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
私は同じ問題で苦労しています。私は気に入らない解決策があります(そして、あなたも気に入らないでしょう)が、それはうまくいきます。
PreserveHostHeadersを有効にすると、doでホストヘッダーを置き換えたい場合に、送信URL書き換えルールを追加してすべてのケースを再マッピングできます。