【问题标题】:RestAPI and Front-End on the same port in Docker在 Docker 中的同一端口上休息 API 和前端
【发布时间】:2016-04-16 09:49:06
【问题描述】:

我在 DigitalOcean 上创建了新的 droplet 并安装了 Docker。我有两个容器,一个是我的 NodeJS app = RestAPI on port 8080,第二个是 Nginx,它们基​​本上暴露了我的静态 html 文件(使用AngularJS)在端口 80

但是现在,我想开始从我的前端 AngularJS 应用程序向 NodeJS 应用程序发出请求,但通过 端口 80。喜欢:

$http({
method: 'GET',
url: '/api/myapi'

问题:两个 Docker 容器不能使用同一个端口(本例中为 80)。

如何将 RestAPI 和 Nginx WEB 服务器暴露在同一个端口和同一个域上?

这个想法是从 AngularJS 向自己的域和相同的端口发出请求。

【问题讨论】:

    标签: angularjs node.js nginx docker digital-ocean


    【解决方案1】:

    一种可能的解决方案是将 NodeJS 容器与 Nginx 容器链接,并将端口 8080 从 NodeJS 映射到 Nginx。 您还需要通过将卷从 NodeJS 容器挂载到 Nginx 来与 Nginx 容器共享 NodeJS 文件。

    然后在端口8080 上创建一个 Nginx 上游,以便它可以代理对该端口的请求。接下来将规则添加到 Nginx 配置中,以便在请求任何静态文件时,nginx 为其提供服务。但是对于任何非静态请求,将请求传递给上游。

    【讨论】:

      猜你喜欢
      • 2018-09-21
      • 2021-05-22
      • 2021-06-16
      • 2023-04-07
      • 2021-05-31
      • 2017-11-24
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      相关资源
      最近更新 更多