我目前正在使用Rest API(Express,Nodejs)和Postgresql开发一个有角度的应用程序。将其托管在本地计算机上时,一切工作正常。经过测试后,我将映像移至Ubuntu服务器,以便可以将应用程序托管在外部端口上。我可以使用https:// server-external-ip:80访问有角度的前端,但是在尝试登录时,Nginx未连接到NodeApi。这是我的docker-compose文件:
version: '3.0'
services:
db:
image: postgres:9.6-alpine
environment:
POSTGRES_DB: myDb
POSTGRES_PASSWORD: myPwd
ports:
- 5432:5432
restart: always
volumes:
- ./postgres-data:/var/lib/postgresql/data
networks:
- my-network
backend: # name of the second service
image: myId/mynodeapi
ports:
- 3000:3000
environment:
POSTGRES_DB: myDb
POSTGRES_PASSWORD: myPwd
POSTGRES_PORT: 5432
POSTGRES_HOST: db
depends_on:
- db
networks:
- my-network
command: bash -c "sleep 20 && node server.js"
myapp:
image: myId/myangularapp
ports:
- "80:80"
depends_on:
- backend
networks:
- my-network
networks:
my-network:
我不确定apiUrl应该是什么?我尝试了以下方法,但没有任何效果:
我认为您应该将该docker-compose
服务用作DNS
。似乎您有几个可用的Docker主机/端口,您的docker-compose结构中包含以下内容:
确保使用db
的POSTGRES_DB
环境中的一部分backend
服务。
看一下我的仓库,我认为这是了解类似项目的工作方式以及如何使用来构建多个应用程序的最佳方法nginx
,您还可以检查我的项目docker-compose.yml
,它使用了多种服务并被代理使用nginx
并一起工作。
在此链接上,您将找到一个nginx/default.conf
文件,其中包含几个nginx
上游配置,请查看我如何在那里使用docker-compose服务引用hosts
。
在client /目录中,我还有另一个nginx
作为react.js项目的Web服务器。
在server /目录上,它具有Node.js API,它连接到Redis和Postgres SQL数据库,该数据库也是从docker-compose.yml构建的。
如果您需要设置或流量重定向到/ API,你可以使用一些ngnix
配置像这样
我认为这个用例对您和其他用户可能有用!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句