【问题标题】:"Server" response header for Kestrel behind IISIIS 后面的 Kestrel 的“服务器”响应标头
【发布时间】:2016-10-30 16:08:49
【问题描述】:

如果我在 IIS 后面使用 UseIISIntegration 托管基于 Kestrel 的 ASP.NET Core 网站,Server 响应标头是否仍会显示我正在使用 Kestrel?因为好像是:

这是正确的行为吗?

【问题讨论】:

  • 好吧,从技术上讲,它是正确的,因为 Kestrel 正在托管应用程序。 IIS 仅用作反向代理
  • @Tseng 那么如何查看网站是否实际使用了 IIS?

标签: asp.net iis asp.net-core kestrel-http-server


【解决方案1】:

简短回答:是的,它仍应将应用程序报告为由 Kestrel 托管。

当您使用 IIS 托管 ASP.NET Core 应用程序时,您实际上是在使用 IIS 作为 Kestrel 的反向代理。这是documentation推荐的方法:

如果您打算在 Windows 服务器上部署应用程序,则应将 IIS 作为反向代理服务器运行,以管理和代理对 Kestrel 的请求。

传入的请求将首先由 IIS 处理,然后传递给 Kestrel,如下所示:

Web -> IIS -> ASP.NET Core 模块 -> Kestrel

所以说 Kestrel 是处理请求的服务器仍然是准确的。 IIS 就在前面,帮助 Kestrel 处理传入的流量。如果您想确定它是否使用 IIS(这应该是默认设置),您可以在 IIS 管理器中检查该站点是否已设置并分配给应用程序池。

【讨论】:

    【解决方案2】:

    不完全是问题的答案,但由于谷歌给了我这个与我的问题相关的答案,它可能会帮助一些人:

    要删除此“服务器”标头,已将一个选项添加到 Kestrel 启动选项中,因此在 program.cs 中您可以通过添加以下选项来删除它:

    .UseKestrel(o => { o.AddServerHeader = false; })
    

    Documentation(很差)

    【讨论】:

      猜你喜欢
      • 2021-01-03
      • 2014-04-19
      • 2016-05-09
      • 2011-11-13
      • 1970-01-01
      • 2021-06-13
      • 2021-08-29
      • 1970-01-01
      • 2012-09-22
      相关资源
      最近更新 更多