当我读到一些关于Nginx和Docker的文章时。我知道Nginx是一个Web服务器,它的工作是从客户端获取请求并向特定应用程序内部机器提交请求。
Docker是一个容器,可以包含我的应用程序内部。它可以包含很多东西,比如db,web application。它可以像Unix机器一样安装一些软件包
我的问题是配置Nginx用于Docker应用程序。我们将安装Nginx内部Docker或内部我们的机器(ubuntu或Centos ...)?
答案 0 :(得分:4)
您希望在自己的容器中运行Nginx,然后将端口发布到主机,因此当请求进入主机上的端口80时,Docker会将其引导到Nginx容器来处理它
应用程序的所有其他部分(Web前端,API,数据库,缓存等)都在自己的容器中运行,Nginx是需要外部可用的任何内容的代理。
这种方法的主要优点:
答案 1 :(得分:1)
NGINX将存在于docker容器中。您将在容器中打开端口80,以允许主机向docker容器内的NGINX发出HTTP请求。
您可能希望在dockerfile中使用官方的NGINX docker容器。
https://hub.docker.com/_/nginx/
您的dockerfile将有......
FROM NGINX(在顶部)
EXPOSE 80(http)
EXPOSE 443(https)
然后当您运行docker容器时,使用-P(大写P)标志使两个公开端口都可用于主机。
答案 2 :(得分:0)
它可以在两者上。在可扩展性方面,我将选择自助泊坞机容器。这样,您可以以不同的方式增长您的前端和Web服务器(或反向代理),并获得dockerized版本的好处(放入另一个实例和/或服务器,转到云等)。