[英]HTTP Error 500.30 - ANCM In-Process Start Failure - ASP.NET Project + Orchard Core
[英]Reverse proxy and in-process HTTP server in Asp.Net Core
我正在閱讀asp.net core app
Kestrel
web服務器,特別是in-process http server
和reverse proxy
。
作為季節性的Web開發人員,我無法理解背后的想法:
in-process http server
實現在核心應用程序中的相關性? web server
的重要性? http request
之外,問題的類型是否在asp.net核心世界中解決了反向代理問題? reverse proxy
和Kestrel
如何關聯/通信( 1:n
或1:1
)? 根據官方文件 :
ASP.NET Core旨在在其自己的進程中運行,以便它可以跨平台一致地運行。 IIS,Nginx和Apache決定了他們自己的啟動過程和環境; 要直接使用它們,ASP.NET Core必須適應每個人的需求。 使用諸如Kestrel之類的Web服務器實現為ASP.NET Core提供了對啟動過程和環境的控制。 因此,您只需將這些Web服務器設置為代理對Kestrel的請求,而不是嘗試將ASP.NET Core調整為IIS,Nginx或Apache。 無論您在何處部署,這種安排都允許您的Program.Main和Startup類基本相同。
除了具有進程內http服務器使開發人員更容易使用的東西。 他們只是下載框架,安裝它,無論他們使用什么操作系統(Windows,Linux或MacOS)或他們想要在以后使用什么Web服務器,它都可以開箱即用。 他們只是啟動了dotnet run
命令,啟動了http服務器並在其上托管了一個Web應用程序。
雖然在應用程序准備好生產時在開發環境中運行它是可以的,但開發人員應該記住安全性。 Kestrel Web服務器是一個非常新的Web服務器,因此它不具備IIS,Apache或Nginx在其長壽期間獲得的所有安全性和其他有用功能。 這是MS建議在生產環境中使用反向代理的唯一原因。 反向代理的目標不僅是對進程內http服務器的轉發請求,而且還負責安全性,壓縮和良好的Web服務器可能提供的其他功能。
至於容器部署,它實際上取決於您想要實現的目標。 有不同的場景:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.