【问题标题】:Kestrel hosting basicsKestrel 托管基础知识
【发布时间】:2014-10-08 15:28:26
【问题描述】:

我正在开发一个 ASP.NET 网站,我对使用 vNext 来托管我的网站(无论主机如何)非常感兴趣。不过,当我开始寻找一些基本的托管功能时,我似乎认为它们可能不会得到开发。有谁知道在所有平台上使用 Kestrel 的 vNext 托管是否将支持以下功能:

  1. SSL 托管
  2. HTTP 请求的日志记录(如 IIS)
  3. IIS 模块(我猜不是,我只需要重写 url 即可重定向到 HTTPS)

【问题讨论】:

    标签: asp.net-core


    【解决方案1】:

    KestrelHttpServer repo 所述:

    此 repo 包含一个基于 libuv 的 ASP.NET vNext 开发 Web 服务器。

    因为它目前被定为开发服务器,所以某些功能可能永远不会进入。例如,IIS 具有控制 IP 地址映射到主机名、带宽/内存/CPU 限制等功能。开发服务器通常不会有这样的功能。

    至于 IIS 模块,我可以放心地说它肯定不会支持它们,因为它们是 IIS 特定的,而 Kestrel 与 IIS 无关。

    关于 SSL 托管,这当然是一个有趣的可能性,但目前不在计划中。即使对于开发 Web 服务器(IIS Express 支持它),这似乎也很有用。

    更新: 回购文档已于 9 月 1 日更新,因此现在显示为:

    这个 repo 包含一个基于 libuv 的 ASP.NET Core Web 服务器。

    【讨论】:

    • 我们(我在 ASP.NET 团队中)正在考虑让 Kestrel 用于生产,但编写生产服务器可能至少比仅开发人员多几个数量级服务器。
    • @ppumkin 使用 nginx 作为反向代理绝对是向任何 Web 服务器添加功能的好方法。
    • @BenBurns 目前没有更新。很有可能像其他平台上存在的其他“迷你Web服务器”一样,建议在其前面使用诸如ARRnginx之类的反向代理来处理诸如SSL和其他保护之类的事情。
    • @Eilon - 尽管缺少 SSL 或其他功能,Kestrel 的原始性能是否适合生产使用?我理所当然地认为任何现代“自托管”应用程序(例如 Node、Go 等)都将由 Nginx 或 Apache 或其他任何东西代理。更重要的问题是 ASP.NET 5 的自托管位是否可以扩展? Kestrel 将其描述为“开发服务器”的文档让我很警惕……Linux 上 ASP.NET 5 的生产托管故事究竟会是什么?
    • @StevePerkins 我们认为最终的答案将是 Kestrel。但是,我们无法在它上面花费尽可能多的时间,因此做出任何形式的保证或推荐都有些困难。 Kestrel 和 Node 都依赖于 libuv,但除此之外,这两个服务器当然存在分歧。除非 ASP.NET 团队(我的团队)能够对其进行严格的性能和压力测试,否则很难做出承诺。
    【解决方案2】:

    您可以在 nginx 服务器后面运行 kestrel。它将为您提供 SSL、虚拟主机和其他功能。但是红隼仍然非常不稳定,所以在生产中使用它之前你应该三思而后行。这里有一篇文章,指令how to configure nginx to pass requests to the kestrel

    【讨论】:

    【解决方案3】:

    这是一个小的更新,因为 Kestrel 正在准备生产

    如果在 Linux 上部署,您应该运行类似的反向代理 服务器(例如 Apache 或 Nginx)将请求代理到 Kestrel。 http://docs.asp.net/en/latest/fundamentals/servers.html#choosing-a-server

    新的 ASP.NET 5/Core 项目在 project.json 中附带了这个

    "commands": {
      "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5000"
    

    很快就会变成:

      "web": "Microsoft.AspNetCore.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5000"
    

    示例应用日志记录看起来不错,它支持 SSL,请参阅 SampleApp/Startup.cs

    注意这个空间...

    【讨论】:

    • 大约什么时候?
    • RC2 在roadmap 上仍处于待定状态,另请参阅链接的blog post
    • 现在 the schedule 适用于 rc2“5 月中旬”和 RTM“6 月底”,但请注意工具版本分别为“预览版”1 和 2
    猜你喜欢
    • 1970-01-01
    • 2014-04-16
    • 2018-05-25
    • 2014-11-28
    • 2014-02-14
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多