【问题标题】:best practices for deploying nginx部署 nginx 的最佳实践
【发布时间】:2019-03-25 07:23:24
【问题描述】:

我是云领域的新手,我想部署使用nodeMongoDBredis 的应用程序。所有这些部分都变成了一个 docker 容器,并且可以很好地协同工作。 现在我想设置nginx。我想知道部署负载均衡器的最佳实践是什么?我应该将nginx 作为 docker 容器运行吗?还是只安装在系统级别?

【问题讨论】:

    标签: docker nginx continuous-integration containers continuous-deployment


    【解决方案1】:

    我认为这取决于您希望使用 nginx 实例提供多少服务。例如,由于您只能将一个 nginx 实例绑定到 80 和 443 端口,如果您想在不同域之间共享相同的 SAP,我会选择在主机上运行 nginx(或在专用堆栈中,但它看起来很复杂) .如果您将 SAP 用于单个域,那么将它放在堆栈中是非常有意义的。

    【讨论】:

      【解决方案2】:

      如果您在容器上运行堆栈的其他组件,那么将 nginx 作为容器运行也是有意义的。 但这取决于您的环境,可用的工具。您可以在 kubernetes 以及 docker swram 或您选择的任何其他工具上轻松扩展 nginx。

      理想情况下,您需要在单独的容器中运行每个组件,以便您可以独立管理、扩展和排除故障。

      【讨论】:

        【解决方案3】:

        在你的 docker 网络中嵌入一个 nginx 是一个非常好的主意。作为 docker 容器,在 docker 网络中,它可以通过其服务/容器名称连接到其他容器,而您将仅在 nginx 服务上定义端口转发规则。

        例如:

        docker network create --driver overlay --attachable demo
        docker run -d -p 80:80 --network demo --name nginx nginx
        docker run -it --network demo --name alpine alpine
        

        您的外壳应该在 alpine 容器中。执行“ping nginx”。你应该可以ping通它。反之亦然。

        所以现在,您在 localhost:80(来自您的主机)部署了一个 nginx,它可以使用它们的容器/服务名称调用其他容器。在 docker 网络中部署 Web api 的访问点非常有用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-25
          • 2017-07-06
          • 1970-01-01
          • 1970-01-01
          • 2011-10-05
          • 2015-04-23
          • 2021-03-15
          相关资源
          最近更新 更多