nginx与.net core kestrel - 多个vs单个实例

时间:2017-09-03 11:13:27

标签: docker nginx .net-core microservices

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

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

    1. 随着时间的推移,还会增加更多服务。
    2. 此设置将在Linux上运行
    3. 将来,当网站负载变高时,我会想要进行负载平衡,并在自己的(多个)服务器上运行这四个网站中的每一个。我还希望启动每个服务的多个实例,因为它们是无状态的。
    4. 问题;是否有充分的理由使用单独的nginx实例,或者所有.net应用程序是否都使用相同的nginx容器?

1 个答案:

答案 0 :(得分:0)

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