什麼是 Kestrel 以及它與 IIS 的區別?(ASP.NET)
Kestrel 是一個輕量級、跨平臺且開源的 ASP.NET Core Web 伺服器。它包含在 ASP.NET Core 中,並預設啟用。Kestrel 支援 .NET Core 支援的所有平臺和版本。
在 Program 類中,ConfigureWebHostDefaults() 方法將 Kestrel 配置為 ASP.NET Core 應用程式的 Web 伺服器。
public class Program{
public static void Main(string[] args){
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>{
webBuilder.UseStartup<Startup>();
});
}儘管 Kestrel 可以獨立地為 ASP.NET Core 應用程式提供服務,但 Microsoft 建議將其與反向代理(如 Apache、IIS 或 Nginx)一起使用,以獲得更好的效能、安全性和可靠性。
.png)
.png)
IIS 和 Kestrel 之間的主要區別在於 Kestrel 是一個跨平臺伺服器。它可以在 Linux、Windows 和 Mac 上執行,而 IIS 則是 Windows 專用的。
這兩個伺服器之間的另一個重要區別是,**Kestrel 是完全開源的**,而**IIS 是閉源的**,並且僅由 Microsoft 開發和維護。
IIS 是一款古老但功能強大的軟體。使用 Kestrel,Microsoft 將跨平臺和高效能作為明確的設計目標。由於 Kestrel 程式碼庫是從頭開始的,因此開發人員可以忽略遺留/相容性問題,專注於速度和效率。
但是,Kestrel 沒有提供像 IIS、Nginx 或 Apache 這樣的完整 Web 伺服器的所有豐富功能。因此,我們通常將其用作應用程式伺服器,並使用上述伺服器之一充當反向代理。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP