我有一个 IIS 服务器,它托管了许多站点和 API。这些站点包括 Confluence 和 Jira 实例。这些产品实际上运行自己的 Web 服务器,因此应用程序请求路由和 URL 重写模块被用于将传入请求反向代理到documents.example.com' and 'jira.example.com' tolocalhost:8080 andlocalhost:8090` - confluence 和 jira 实例正在运行的地方。
现在我正在尝试为一个小的简单存储服务器 (s3) api (minio) 设置反向代理——它托管在 localhost:9000 上——但 s3 协议要求主机头是其消息身份验证代码的一部分。
但是,当应用程序请求路由按照 URL 重写规则重新路由请求时,它还会重写主机标头以反映新的目标标头。
这可以通过设置禁用,system.webServer.proxy:preserveHostHeaders但只能在 ApplicationHost.config 中禁用,因为 ARR 运行服务器,而不是站点级别。
所以现在我有一个难题:
如果我设置了这个设置,那么在它们的 MAC 中使用主机头的 REST API 可以运行,但是 Confluence 和 Jira 作为它们支持的反向代理配置需要重写主机头。
作为参考,此设置可以保留主机标头
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -preserveHostHeader:true /commit:apphost
Run Code Online (Sandbox Code Playgroud)