Nginx是内部还是外部Docker

Bui*_*Duc 1 nginx docker

当我阅读有关Nginx和Docker的一些文章时。我知道Nginx是一个Web服务器,它的工作是从客户端获取请求并将请求贡献给特定的应用程序内部计算机。Docker是一个可以在其中包含我的应用程序的容器。它可以包含很多东西,例如db,Web应用程序。它可以安装某些软件包,例如Unix机器。
我的问题是配置用于Docker应用程序的Nginx时。我们将在Nginx内部Docker或我们的机器内部安装(ubuntu或Centos ...)?

Elt*_*man 5

您需要在自己的容器中运行Nginx,在该容器中将端口发布到主机,因此当主机上的端口80收到请求时,Docker会将其定向到Nginx容器进行处理。

应用程序的所有其他部分(Web前端,API,数据库,缓存等)都在各自的容器中运行,而Nginx是需要外部可用的任何内容的代理。

这种方法的主要优点:

  • 您可以将所有Nginx配置构建到Docker映像中,因此您可以在任何地方运行该映像,而无需复制conf文件;
  • 您对主机的依赖性最小-添加或替换新计算机时,只需安装Docker,然后运行所有容器;
  • 您的应用容器不需要是公开可见的-如果您在主机上运行Nginx,则要代理您的应用,他们需要将其端口发布到主机。通过在Docker网络中的容器中运行所有内容,应用程序无需发布其端口,例如Nginx容器可使用应用程序容器中的端口5000,但主机上不可用。


Mar*_*.C. 0

两者都可以。在可扩展性方面,我会选择self docker容器。通过这种方式,您可以以不同的方式发展您的前端和 Web 服务器(或反向代理),并获得 docker 化版本的好处(放入另一个实例和/或服务器、转到云等)