【问题标题】:Best Practice to use IIS and asp.net core web application On Docker Container?在 Docker 容器上使用 IIS 和 asp.net 核心 Web 应用程序的最佳实践?
【发布时间】:2020-12-04 16:40:22
【问题描述】:

我在 Docker 映像上设置了我的 ASP.Net Core 3.1 Web 应用程序,现在我可以运行该映像并启动它的容器并通过我的本地主机中的 kestrel(它的独立网络服务器)访问我的 WebApplication。

现在我的问题是:在实际生产环境中使用应用程序容器和 IIS 来处理来自网络的公共请求的最佳做法是什么?

例如:

在单独的容器中使用 IIS 并将其连接到我的 WebApp 容器?

或者将 IIS 和我的 WebApp 放在一个容器中?

或者在我的服务器(包含 WebApp Container)上使用 IIS 并将其连接到我的 Web 应用 Container?

还是别的什么?

【问题讨论】:

  • 当您在容器环境(例如 Kubernetes)中托管 Web 应用程序时,有一种标准化的方法可以将 Web 应用程序暴露给外部,cloud.google.com/kubernetes-engine/docs/tutorials/hello-appand IIS 不再重要。
  • 我建议你在服务器上使用 IIS 并连接到你的 web 应用容器,通常我们这样做,不容易出问题。
  • @LexLi 谢谢,但你的链接对我不起作用!你说 Kubernetes 在这个生态系统中像 IIS 或 Nginx 一样被用作反向代理?
  • @Mohammad 你找到答案了吗? mamnoon misham befarmayead。
  • @GuidoMocha 我为你的朋友发布我的问题的答案。

标签: asp.net docker iis


【解决方案1】:

我的问题来自生产环境中的微服务概念。虽然 Kestrel 被用作快速的网络服务器,但 IIS 有很多东西,而 kestrel 没有!

Here 您可以查看有关“何时将 Kestrel 与反向代理一起使用”的更多信息。

在微服务中,使用 API 网关(如 Ocelot 或 Envoy)重新路由 HTTP 请求很重要,换句话说,API 网关是前端或仅显示服务的外观。我们仍然需要一些成熟的 Web 服务器,如 IIS 或在 API 网关前使用 Kubernetes Ingress(基于 Nginx)。 (更多信息见here

我发现我们可以使用 Kubernetes Ingress 或 IIS 作为 API 网关和 Internet 之间的中间层,以获得更多选择。所以我们可以在停靠的容器中使用 IIS 来处理它(阅读Here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多