您在 *nix 服务器上的 ASP.NET Core 生产环境中使用哪个 Web 服务器?
Posted
技术标签:
【中文标题】您在 *nix 服务器上的 ASP.NET Core 生产环境中使用哪个 Web 服务器?【英文标题】:Which web server are you using in production for ASP.NET Core on a *nix server? 【发布时间】:2016-04-09 18:00:42 【问题描述】:随着 ASP.NET Core 的发布,我想知道对于 Linux 和 Mac 环境来说最好的托管选项是什么。是否有任何生产级 Web 服务器正在积极开发中?
我知道的唯一一个是框架附带的 Kestrel。从docs 来看,与 IIS 相比,Kestrel 似乎缺少几个功能
This *** 的答案表明 .NET Core 应用程序可以与任何 HTTP 服务器一起使用。这是否意味着它可以与 Apache 一起使用?如果是这样,它会缺少任何功能吗?我的印象是它只适用于基于 OWIN 的服务器。我错过了什么吗?
【问题讨论】:
【参考方案1】:使用 Kestrel,这是前进的方向。参考这个:Change to IIS hosting model。
这是否意味着它可以与 Apache 一起使用?
是的,这确实是推荐的方法。但是,切勿将 Kestrel 直接暴露给外界。始终将其放在 nginx、IIS、HAProxy 或 Apache 等 Web 服务器后面。更多关于红隼:
ASP.NET 5: Kestrel ASP.NET 5: Considerations for Production Linux Environments使用这些反向代理的一些示例:
NGINX Reverse Proxy and Load Balancing for ASP.NET 5 Applications ASP.NET Core Authentication in a Load Balanced Environment with HAProxy and Redis【讨论】:
DotNetty 与 Kestrel 有何关联?它们服务于不同的利基市场吗? 为什么不建议将Kestrel暴露给外界? 如果你必须把 Kestrel 放在 IIS 后面,为什么要引入额外的复杂性,为什么不只使用 IIS? @tugberk,对不起,我错过了这与 *nix 机器有关。 来自docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/… “出于安全原因,边缘部署(暴露于来自 Internet 的流量)需要反向代理。Kestrel 相对较新,还没有完整的攻击防御机制。这包括但不限于适当的超时、大小限制和并发连接限制。”以上是关于您在 *nix 服务器上的 ASP.NET Core 生产环境中使用哪个 Web 服务器?的主要内容,如果未能解决你的问题,请参考以下文章