我在asp.net core 2.0中开发的角度应用程序使用了api 它已部署在IIS中并配置为使用kestrel。
我读过Kestrel在公开公开应用程序时不安全。 真的吗?红隼还没准备好投入生产吗?或者红隼完全用于不同的目的,就像很少博客对内部应用说的那样。
答案 0 :(得分:7)
是的,Kestrel已准备就绪,但如果您的应用程序在公共网络Microsoft recommend上可用,那么您可以将其与反向代理一起使用。
您可以在MSDN文档中找到有关hosting ASP.NET Core 2.1 apps选项的更多信息,包括on Windows with IIS,on Linux with Nginx和on Linux with Apache等。
使用反向代理有很多原因,包括:
根据您的要求,上述不同方面对您来说可能更重要或更不重要。
例如,Kestrel是一个非常轻量级的Web服务器,专门用于运行ASP.NET Core应用程序,但要做到这一点,它没有IIS或Apache等许多功能,你可能会发现你想要的。例如,处理静态文件(如图像,CSS或JS)不需要由ASP.NET Core引擎处理 - 使用IIS,您可以自动压缩这些文件并添加缓存头以加速后续页面加载。同样,在请求到达处理器之前,IIS可以处理重定向和路由。
从安全的角度来看,您再次可以在请求到达Kestrel之前利用请求过滤(即使用的动词,路径等),IP过滤,身份验证等功能,而不必处理这些功能代码中的方面。
值得注意的是for ASP.NET Core 1.x,文档更加具体:
如果将应用程序公开到Internet,则必须使用IIS,Nginx或Apache作为反向代理服务器。反向代理服务器接收来自Internet的HTTP请求,并在进行一些初步处理后将它们转发给Kestrel。