天天看點

ASP.NETCore的Kestrel伺服器

ASP.NETCore的Kestrel伺服器

什麼是Kestrel伺服器

ASP.NETCore的Kestrel伺服器

Kestrel是開源的(GitHub提供的源代碼),事件驅動的異步I / O伺服器,用于在任何平台上托管ASP.NET應用程式。這是一個監聽伺服器和一個指令行界面。您将偵聽伺服器安裝在Windows或Linux伺服器上,并在計算機上安裝指令行界面(安裝.netcore會自動一整套安裝)。(Kestrel發音: ['kestr(ə)l])

它是與ASP.NET Core一起由微軟推出的。所有ASP.NET Core應用程式都使用新的MVC架構和Kestrel Web伺服器。這些新的應用程式可以運作在完整的.NET Framework或.NET Core上。

Kestrel Web伺服器的概述

Kestrel被認為是較新的ASP.NET應用程式的首選Web伺服器(請參閱這篇文章與IIS比較, why you need both)。它j機遇 libuv library,與node.js使用的庫相同。Libuv支援事件驅動的程式設計風格。它的一些核心工具包括:

  • 非阻塞網絡支援
  • 異步檔案系統通路
  • 計時器
  • 子程序

它允許ASP.NET Core應用程式在其他跨平台的Web伺服器(如Jexus,Nginx和Apache)上輕松運作,而無需解決不同的啟動配置。通過使用Kestrel作為程序内伺服器, 即使有跨平台支援,應用程式也将具有一緻的處理(Startup (Main(), Startup.ConfigireServices(), Startup.Configure())

Kestrel Web伺服器的工作原理

應用程式通常是為了響應人的行為而編寫的。使用事件驅動的程式設計,有一個循環來監聽事件。然後觸發一個回調函數。為了減少SYS調用的數量,所有其他工作都在标準.NET工作線程的托管代碼中執行。

Kestrel提供了一個事件循環和基于回調的I / O通知。Libuv管理從作業系統收集和監視事件。此外,使用者可以在事件發生時注冊回調。是以,Kestrel使用libuv進行I / O工作,并支援運作多個事件循環。

由于它輕巧,Kestrel不允許你進行SSL termination,URL重寫或GZip壓縮,但是相同的輕量級設計使他比起其他伺服器會更快。實際上,它比靜态和純文字操作的node.js快6倍。

Kestrel的好處

Kestrel支援.NET Core支援的所有平台和版本。此外,它預設包含的ASP.NET Core新項目模闆中,可以提供更好的請求處理的性能。在Visual Studio中建立新項目時,項目會自動配置為在Kestrel中運作。

如前所述,這不是一個功能齊全的網絡伺服器,但這正是為什麼它很快。如果您覺得需要速度,Kestrel就是答案 - 特别是因為它被設計用于ASP.NETCore的生産。

你可以做的是在一個功能更全面的網絡伺服器(如IIS或NGNIX)之後運作它。您可以使用HttpPlatformHandler在IIS 後面運作它,或者在Visual Studio 後面使用HttpPlatformHandler在IIS Express 後面運作它。而且,您需要在ASP.NET Core項目中支援它,以便開發人員可以在任何支援的平台上友善地運作它們。

現在,即使您不是跨平台的,也可以直接從web伺服器指令行上運作ASP.NET。

由于Kestrel不是一個全功能的Web伺服器,您應該讓web程式在在IIS或NGNIX 之後運作(IIS;Jexus或者NGINX代理web程式,提供轉發到Kestrel的形式工作)。它旨在使ASP.NET盡可能快,但其管理安全性和提供靜态檔案的能力有限。如果您使用的是Kestrel作為web伺服器的ASP.NET Core,則 可以利用 Prefix來實作強大的代碼分析功能。

 What is Kestrel Web Server? How It Works, Benefits, and More 

 Kestrel   官網介紹與簡單使用👉快點我,快點我

ASP.NETCore的Kestrel伺服器

作者:Chaunce

來源:http://www.cnblogs.com/xiaoliangge/

GitHub:https://github.com/liuyl1992

個人位址:http://blog.chaunce.top

公衆号請搜:架構師進階俱樂部 SmartLife_com

ASP.NETCore的Kestrel伺服器

聲明:原創部落格請在轉載時保留原文連結或者在文章開頭加上本人部落格位址,如發現錯誤,歡迎批評指正。凡是轉載于本人的文章,不能設定打賞功能等盈利行為

繼續閱讀