当我研究托管.NET核心机制时,我在很多论坛和网站上看到了这样的评论:“微软建议经常在Kestrel前面使用任何网站服务器。”为什么?因为安全问题?我之所以这么说,是因为如果只使用Kestrel,那么性能要比IIS+ kestrel好吗?
发布于 2019-07-24 00:50:01
@RickStrahl编写了这个很好的文章使用IISCore2.2托管ASP.NET进程中的ASP.NET内核,其中讨论了IIS中的InProcess托管,ASP.NET 2.2中提供了它。
在这里,他还提到了为什么在Kestrel前面有一个Web服务器是很好的。
简而言之,在ASP.NET核心中内置的Kestrel服务器并不意味着是面向Web服务器的Internet,而是充当处理非常特定的数据处理任务的应用服务器或边缘服务器。Kestrel是针对应用程序场景进行优化的,但它没有针对其他事情进行优化,比如为服务器服务或管理服务器生命周期的静态文件。 因此,通常不希望在Web应用程序中直接运行Kestrel。在使用IIS的Windows和Linux上都是如此,在Linux中,您倾向于使用Web服务器nginx或ha代理来处理非应用程序的问题。我写过如何设置IIS重写规则来路由常见的静态文件,而不是让Kestrel处理它们。这不仅与速度有关,而且还让Web应用程序专注于执行它设计的动态操作,让IIS完成它设计的工作。 以下是关于为什么要使用完整的Web服务器而不是直接连接到Web的应用程序的几个论点:
还有其他原因:安全性和服务器强化、管理特性、管理SSL证书、完整日志记录和Http请求跟踪工具以及列表继续进行。所有的理由都是坐在专用的Web服务器平台后面,而不是运行和管理一个自托管的服务器实例。
https://stackoverflow.com/questions/55680428
复制相似问题