"Server" 对 IIS 后面的 Kestrel 的响应 header
"Server" response header for Kestrel behind IIS
如果我在 IIS 后面使用 UseIISIntegration
托管我的 Kestrel-based ASP.NET 核心网站,Server
响应 header 是否仍然说我正在使用红隼?因为好像是:
这是正确的行为吗?
简短回答:是的,它仍应报告由 Kestrel 托管的应用程序。
当您使用 IIS 托管 ASP.NET 核心应用程序时,您实际上是在使用 IIS 作为 Kestrel 的反向代理。这是 documentation:
推荐的方法
If you intend to deploy your application on a Windows server, you should run IIS as a reverse proxy server that manages and proxies requests to Kestrel.
传入的请求将首先由 IIS 处理,然后传递给 Kestrel,如下所示:
Web -> IIS -> ASP.NET 核心模块 -> Kestrel
所以说 Kestrel 是处理请求的服务器仍然是准确的。 IIS 只是坐在前面,帮助 Kestrel 处理传入的流量。如果您想确定该网站是否使用 IIS(这应该是默认设置),您可以检查该网站是否已设置并分配给 IIS 管理器中的应用程序池。
不完全是问题的答案,但由于 Google 给了我这个问题的相关答案,它可能会对某些人有所帮助:
要删除此 "server" header,已将一个选项添加到 Kestrel 启动选项中,因此在 program.cs 中您可以删除通过添加以下选项:
.UseKestrel(o => { o.AddServerHeader = false; })
Documentation(很差)
如果我在 IIS 后面使用 UseIISIntegration
托管我的 Kestrel-based ASP.NET 核心网站,Server
响应 header 是否仍然说我正在使用红隼?因为好像是:
这是正确的行为吗?
简短回答:是的,它仍应报告由 Kestrel 托管的应用程序。
当您使用 IIS 托管 ASP.NET 核心应用程序时,您实际上是在使用 IIS 作为 Kestrel 的反向代理。这是 documentation:
推荐的方法If you intend to deploy your application on a Windows server, you should run IIS as a reverse proxy server that manages and proxies requests to Kestrel.
传入的请求将首先由 IIS 处理,然后传递给 Kestrel,如下所示:
Web -> IIS -> ASP.NET 核心模块 -> Kestrel
所以说 Kestrel 是处理请求的服务器仍然是准确的。 IIS 只是坐在前面,帮助 Kestrel 处理传入的流量。如果您想确定该网站是否使用 IIS(这应该是默认设置),您可以检查该网站是否已设置并分配给 IIS 管理器中的应用程序池。
不完全是问题的答案,但由于 Google 给了我这个问题的相关答案,它可能会对某些人有所帮助:
要删除此 "server" header,已将一个选项添加到 Kestrel 启动选项中,因此在 program.cs 中您可以删除通过添加以下选项:
.UseKestrel(o => { o.AddServerHeader = false; })
Documentation(很差)