同时运行Nginx和Docker Nginx代理

时间:2018-10-24 10:01:39

标签: docker nginx proxy

我有一台服务器,其中有几个直接通过系统上安装的Nginx直接提供服务的项目。

但是我开始使用Docker迁移/创建新项目。

检查Docker compose file。如您所见,我前面有jwilder / nginx-proxy可以通过容器进行代理。

要访问内容管理系统,我想通过content.my.test访问它,并通过my.test或my.test:8080(开发)查看前端客户端,并且GraphQL将通过graphql提供。我的测试我也可以通过my.test:1234通过Web浏览器查看MongoDB数据库。

本地-一切正常。我已经启动并运行了Dnsmasq,因此.test域已映射到localhost。但是仅在Nginx或apache未运行(即端口80可用)的情况下才起作用。

例如,我在本地不了解两件事:

  • 为什么我可以通过graphql.my.test:1234访问MongoDB管理员。我希望只能通过my.test:1234来访问它。
  • my.test:8080也是如此-我可以在此处看到前端应用程序,也可以通过my.test或content.my.test:8080访问它。
  • 以及graphql.my.test和graphql.my.test:4000也显示相同或content.my.test:4000

当我想在服务器上提供此设置时会出现另一个问题,我已经在其中运行了几个Nginx应用程序,因此端口80不可用。我试图在Nginx上创建虚拟主机,并将其代理到docker代理,但是发生了一些奇怪的事情。很难解释,但是我唯一能够访问的是通过其端口和MongoDB进行的MongoDB管理面板。其他子域主机不可用,但是我已将A记录添加到服务器,并将每个子域的CNAME记录添加到GoDaddy上的DNS记录。请检查my Nginx config,也许我在这里错过了一些事情。在这种情况下发生的最可怕的事情之一是,指向该服务器的所有域都呈现此内容。

因此,我想听听一些提示,说明如何将这些内容正确地链接在一起,以使服务不会相互干扰/冲突。

0 个答案:

没有答案