溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET Core服務器是什么

發(fā)布時間:2021-12-06 11:56:19 來源:億速云 閱讀:141 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“ASP.NET Core服務器是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ASP.NET Core服務器是什么”吧!

ASP.NET Core應用通過一個進程內(nèi)的HTTP服務器實例實現(xiàn)運行,這個服務器實例偵聽HTTP請求并將請求作為組成HttpContext的一組請求功能集暴露給我們的應用程序。

ASP.NET Core搭載兩個服務器實現(xiàn):

  • Kestrel是一個基于libuv的跨平臺HTTP服務器,libuv是一個跨平臺的異步I/O庫

  • WebListener是一個基于HTTP.SYS內(nèi)核驅(qū)動的“Windows專用”HTTP服務器

Kestrel

Kestrel是包含在ASP.NET Core新項目模板中默認的web服務器。如果你的應用只接收來自內(nèi)部網(wǎng)絡(luò)的請求,你可以只使用Kestrel本身。

如果你將你的應用部署在公共網(wǎng)絡(luò)上,我們建議你使用IIS,Nginx或者Apache作為反向代理服務器。一個反向代理服務器接收來自網(wǎng)絡(luò)的HTTP請求并且在經(jīng)過一些初步處理后將請求傳遞到Kestrel服務器。過程如下圖所示。

對edge deployments(從公共網(wǎng)絡(luò)上接觸到流量的部署方式)使用反向代理最重要的一個原因就是安全性。因為Kestrel相對較新,對抵御安全攻擊至今還沒有一個完整的功能補充。安全性處理包括但不限于適當?shù)某瑫r,大小的限制,以及并發(fā)連接限制等問題。有關(guān)何時使用Kestrel與反向代理的更多信息,請參見Kestrel。

IIS with Kestrel

當你使用IIS或者IIS Express作為對ASP.NET Core的反向代理時,ASP.NET Core應用將運行在由該IIS工作進程分離出的一個進程中。在該IIS進程中,存在著一個特殊的IIS模塊,它被用來協(xié)調(diào)反向代理的關(guān)系。它就是ASP.NET Core模塊。ASP.NET Core模塊的主要功能包括啟動ASP.NET Core應用,當應用崩潰時處理重啟,向應用傳送HTTP流量。更多的信息,請參考ASP.NET Core Module。

Nginx with Kestrel

有關(guān)如何在Linux使用Nginx作為對Kestrel的反向代理服務器的更多信息,請參考Publish to a Linux Production Environment。

Apache with Kestrel

有關(guān)如何在Linux使用Apache作為對Kestrel的反向代理服務器的更多信息,請參考Using Apache Web Server as a reverse proxy。

Jexus with Kestrel

有關(guān)如何在Linux使用Jexus作為對Kestrel的轉(zhuǎn)發(fā)服務器的更多信息,請參考 Jexus 5.8.2 正式發(fā)布為Asp.Net Core進入生產(chǎn)環(huán)境提供平臺支持

WebListener

如果你在Windows上運行你的ASP.NET Core應用,你可以會遇到以下場景——你既想要在公共網(wǎng)絡(luò)上部署你的應用,又不能使用IIS,這時,WebListener會是一個可供替代的選擇。

當你只想要在內(nèi)網(wǎng)中部署你的應用時,WebListener可以被用來代替Kestrel,特別是當你需要Weblistener服務器支持功能中的某項而Kestrel恰好不支持的時候。

對于內(nèi)部網(wǎng)絡(luò)場景,為了能達到最好的性能表現(xiàn),我們通常推薦Kestrel服務器,但是在另一些場景中,你可以想要使用某項僅WebListener支持的功能。關(guān)于WebListener功能的更多信息,請參考WebListener。

ASP.NET Core 服務器基礎(chǔ)組件說明

IApplicationBuilderStartup類中的Configure方法暴露了IFeatureCollection類的ServerFeatures屬性。Kestrel和WebListener服務器都只提供了一個單一的功能,IServerAddressesFeature,但是不同的服務器實現(xiàn)可能會顯示額外的功能。

IServerAddressesFeature可以用來找出哪些服務器實例端口在運行時被綁定。

ServerFeatures 的注釋為“Gets the set of HTTP features the application's server providers”。

自定義服務器

你可以創(chuàng)建自定義服務器實現(xiàn)以用來替代Kestrel或者WebListener。Open Web Interface for .NET(OWIN) guide 說明了怎么去實現(xiàn)一個Nowin-based IServer。你可以自由地實現(xiàn)你的應用所需的功能接口,但至少必須支持IHttpRequestFeatureIHttpRequestFeature接口。

感謝各位的閱讀,以上就是“ASP.NET Core服務器是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對ASP.NET Core服務器是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI