【问题标题】:nginx with .net core kestrel - multiple vs single instance带有 .net core kestrel 的 nginx - 多实例与单实例
【发布时间】:2018-02-11 20:30:19
【问题描述】:

我正在运行 4 个 .net 核心 Web 应用程序(3 个“微”服务和一个网站)。我正在尝试使用 docker 来决定部署策略。据我了解,我的选择如下:

  1. 总共 4 个容器 - 每个容器都有一个核心应用和一个 nginx 实例
  2. 总共 8 个容器 - 4 个 .net 核心容器和 4 个 nginx 容器
  3. 总共 5 个容器 - 4 个 .net 核心容器和共享 nginx 容器

一些注意事项:

  1. 随着时间的推移,还将添加更多服务。
  2. 此设置将在 linux 上运行
  3. 将来,当站点负载变高时,我会想要进行负载平衡,并在它们自己的(多个)服务器上运行四个网站中的每一个。我还想启动每个服务的多个实例,因为它们是无状态的。

问题是;是否有充分的理由使用单独的 nginx 实例,或者所有 .net 应用程序都应该使用相同的 nginx 容器?

【问题讨论】:

    标签: docker nginx .net-core microservices


    【解决方案1】:

    这两种方法都有效,但可能单个 nginx 实例方案更灵活,因为在这种情况下,您可以使用 nginx 作为服务的网关,例如 SSL 终止、身份验证等。顺便说一句,如果你使用的是 ASP.NET Core 2.0,你可以尝试在没有 nginx 的情况下公开你的服务,因为 Kestrel 在 2.0 中被认为是边缘就绪的

    【讨论】:

    • 我正在寻找使用 nginx 卸载静态文件和负载平衡的方法。我想在这里分开关注点。你能指出任何文件为直接红隼提供“继续”吗?
    • 对于面向公众的应用程序,dotnet-core 2.0 中的 Kestrel 仍然认为反向代理是必要的:docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/
    • 哪里说需要反向代理?正如我所说,Kestrel 在 2.0 中已做好边缘准备,它是官方支持的,虽然有点冒险,但场景。至于文档,基本上网上都能找到,不多。
    • 查看此视频以了解有关 Kestrel 在正面场景中的详细信息youtube.com/watch?v=fBUumVyafHw
    猜你喜欢
    • 2019-11-04
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 2019-07-14
    相关资源
    最近更新 更多