[英]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.