我设置了我的ASP。Net Core 3.1 web应用程序,现在我可以运行该映像并启动其容器,并通过本地主机中的kestrel(其独立web服务器(访问我的WebApplication。
现在我的问题是:在实际生产环境中使用应用程序容器和IIS来处理来自web的公共请求的最佳实践是什么?
例如:
在单独的容器中使用IIS并将其连接到我的WebApp容器?
或者将IIS和我的WebApp放在一个容器中?
或者在我的服务器(包含WebApp容器(上使用IIS并将其连接到我的web应用容器?
还是别的什么?
我的问题来自生产环境中的微服务概念。尽管Kestrel被用作快速Web服务器,但IIS有很多东西,而Kestrel没有!
在这里你可以看到更多关于";何时使用带有反向代理的Kestrel";。
在微服务中,使用API网关(如Ocelot或Envoy(重新路由HTTP请求是很重要的,换句话说,API网关是仅展示服务的前端或门面。我们仍然需要一些成熟的web服务器,如IIS或在API网关前使用Kubernetes Ingress(基于Nginx(。(有关更多信息,请参阅此处(
我发现我们可以使用Kubernetes Ingress或IIS到API网关和Internet之间的中间层,以便有更多的选择。因此,我们可以在停靠的容器中使用IIS来处理它(阅读此处(