[英]HTTP.sys vs Kestrel: Why choose one over the other? Pros Cons?
两个独立但相似的服务器的原因是什么? 有什么区别? 我可以在 docker 中同时运行吗? 是否都支持相同的东西,比如所有的身份验证类型?
Kestrel 与 HTTP.sys - 我在下面强调了基本差异。
(这些词是微软的,我只是为了简洁和清晰起见对其进行了编辑。请参阅底部链接的来源)。
出于安全原因,Kestrel 以前总是需要在边缘部署(暴露于来自 Internet 的流量)中使用反向代理。 使用 ASP.Net Core 2.x 中的 Kestrel,情况不再如此。 查看文档以获取更多信息。 Kestrel Web 服务器文档
Weblistener 在 ASP.NET Core 2.0 中更名为 HTTP.sys
HTTP.sys是用于 ASP.NET Core的仅限 Windows 的HTTP/Web 服务器,它允许您将服务器直接公开到 Internet,而无需使用 IIS。 HTTP.sys 建立在 Http.Sys(同样成熟的技术,也支持 IIS 的 HTTP 侦听器)之上,因此功能非常丰富,并提供对各种攻击的保护。
另一方面, Kestrel是 ASP.NET Core 的跨平台Web 服务器,旨在在代理(例如 IIS 或 Nginx)之后运行,不应直接面向 Internet 部署。 Kestrel 相对较新,没有完整的攻击防御措施。 它也没有HTTP.sys那样丰富的功能,并带有超时限制、大小限制和并发用户限制。
本质上,选择归结为您的 Web 应用程序的部署方案。
此处找到的 ASP.NET 5 文档(由 Microsoft 于 2015 年 8 月 25 日创建)列出了在另一个答案中找到的图表(参见右下书页的第 107 页,但 PDF 的第 111 页): https://media .readthedocs.org/pdf/aspnet/theming/aspnet.pdf
如果您用于以下其中一项, Kestrel通常具有更好的性能:
WebListener更安全、更慢,并且具有更多功能。 它用于以下情况:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.