gpt4 book ai didi

nginx - 如果一台主机上有多个站点,如何使用Nginx为Docker容器提供服务?

转载 作者:行者123 更新时间:2023-12-02 19:43:16 27 4
gpt4 key购买 nike

我在一台服务器上有三个Web应用程序:两个Node.js应用程序和一个php。现在,我不使用容器,因此流程如下:

一台Nginx正在运行。它通过主机名选择后端和静态文件目录。例如。如果我转到mysite.com,它将代理请求转发给localhost:3000并使用/sites/mysite/static中的静态文件。如果我转到sistersite.com,nginx对PHP的代理请求会使用/sites/sistersite.com中的静态文件,依此类推。

现在,我想隔离应用程序并尝试使用Docker。我应该在每个容器中包含Nginx并通过某种方式解析主机到容器,还是应该仅包含应用程序并使用安装在主机上的通用Nginx?如果第二,如何返回静态文件?通过添加root /path/to/static/in/container?网站还支持http和https,因此它们使用不同的证书。

最佳答案

您描述的任何一种方法都可以使用。制作Nginx + Node容器和Nginx + PHP容器(其中每个容器都是完整的自足站点)是最干净的隔离形式。很容易看出如何添加其他站点,或将PHP站点更改为Rails站点(或进行其他戏剧性的重写)而不会影响容器外部的任何内容。但是,您需要一些第三方服务(Nginx?)才能将主机从主机路由到容器,因此您向网络添加了一个额外的跃点。

或者,您可以将每个站点放入其自己的容器中,并为您的Nginx(单个实例)提供第三个容器。您可以在Nginx容器上使用 --volumes-from 从两个站点容器中装入静态数据。

关于nginx - 如果一台主机上有多个站点,如何使用Nginx为Docker容器提供服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28651959/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com