Angularjs 在Docker中的同一端口上重新启动PI和前端

Angularjs 在Docker中的同一端口上重新启动PI和前端,angularjs,node.js,nginx,docker,digital-ocean,Angularjs,Node.js,Nginx,Docker,Digital Ocean,我在DigitalOcean上创建了新的droplet并安装了Docker。我有两个容器,一个在端口8080上带有我的NodeJSapp=RestAPI,第二个在端口80上带有基本公开静态html文件(带有AngularJS)的Nginx 但是现在,我想开始从我的前端AngularJS应用程序向NodeJS应用程序发出请求,但要通过80端口发出请求。比如: $http({ method: 'GET', url: '/api/myapi' 问题:两个Docker容器不能使用同一个端口(本例中为8

我在DigitalOcean上创建了新的droplet并安装了Docker。我有两个容器,一个在端口8080上带有我的NodeJSapp=RestAPI,第二个在端口80上带有基本公开静态html文件(带有AngularJS)的Nginx

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

$http({
method: 'GET',
url: '/api/myapi'
问题:两个Docker容器不能使用同一个端口(本例中为80)

如何在同一端口和同一域上公开RestAPI和Nginx WEB服务器


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

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

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