nginx与.net核心kestrel – 多个vs单个实例

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

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

一些注释:

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

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

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