我有一个在IISCore2.0中开发的角度应用程序所使用的api,它部署在asp.net中,并配置为使用kestrel。
我读到,当公开公开应用程序时,Kestrel是不安全的。这是真的吗?红隼还没有准备好投入生产吗?或者,kestrel完全是为了不同的目的,就像很少有博客提到的内部应用程序一样。
发布于 2018-04-24 09:45:28
是的,红隼准备好生产了在.NET Core支持的所有平台和版本上都得到了支持,但是如果您的应用程序在公共网络微软推荐上可用,那么您可以通过反向代理来使用它:
即使不需要反向代理服务器,使用反向代理服务器也可能是一个不错的选择。
您可以在MSDN文档中找到有关托管ASP.NET核心应用程序选项的更多信息,包括在Windows上使用IIS、在Linux上使用Nginx和在Linux上使用Apache等。
使用反向代理有许多原因,包括:
根据您的需求,上述不同方面对您来说可能或多或少是重要的。
例如,Kestrel是非常轻量级的web服务器,专门运行ASP.NET核心应用程序,但要做到这一点,它不具备IIS或Apache这样的许多功能,您可能会发现这是您想要的。例如,处理静态文件(如图像、CSS或JS )不需要由ASP.NET核心引擎处理--使用IIS,您可以自动压缩这些文件并添加缓存头以加快后续的页面加载。同样,IIS可以在请求到达处理器之前处理重定向和路由。
从安全性的角度来看,您也可以在请求到达Kestrel之前利用诸如请求过滤(即使用的谓词、路径等)、IP过滤、身份验证等特性,而不必在代码中处理这些方面。
值得注意的是,用于ASP.NET核心1.x文档更加具体:
如果将应用程序公开给Internet,则必须使用IIS、Nginx或Apache作为反向代理服务器。反向代理服务器接收来自Internet的HTTP请求,并在初步处理后将它们转发给Kestrel。
https://stackoverflow.com/questions/49997926
复制相似问题