Angular 在使用docker-swarm的nginx上遇到问题时,将无法找到服务
我已经用angular编写了一个应用程序,它依赖于restful中间件层,而restful中间件层又与管理数据库数据的业务逻辑层相联系 基础设施如下:Angular 在使用docker-swarm的nginx上遇到问题时,将无法找到服务,angular,docker,nginx,swarm,Angular,Docker,Nginx,Swarm,我已经用angular编写了一个应用程序,它依赖于restful中间件层,而restful中间件层又与管理数据库数据的业务逻辑层相联系 基础设施如下: Mysql处理持久性 Tomcat 8.5.31上的业务逻辑 Tomcat 8.5.31上的Restful中间件 nginx 1.15.2和angular 5上的前端应用程序 在我的工作站上,一切都运行得很好,但是,在对接所有服务之后,前端将找不到中间件服务。下面是我的docker-compose.yml文件: version: "3.3"
- Mysql处理持久性
- Tomcat 8.5.31上的业务逻辑
- Tomcat 8.5.31上的Restful中间件
- nginx 1.15.2和angular 5上的前端应用程序
version: "3.3"
services:
ngxseeker: # Front-end service Angular/nginx
image: bilorge/seekr:ngxseekr-0.01
networks:
- pub # public facing nic
ports:
- 80:80
ckerws: # Restful middle-ware service
image: bilorge/seekr:seekr-web-0.01
networks:
- priv # private nic
- pub # public facing nic
seekr-service: # business logic server / data management
image: bilorge/seekr:seekr-server-0.01
networks:
- priv # private nic
ckerdb: # database / persistence layer
image: mysql:5.7
volumes:
- cker-db-data:/var/lib/mysql # persistent data storage
environment:
- MYSQL_ROOT_PASSWORD=&*$#$^##
deploy:
placement:
constraints: [node.role == manager]
networks:
- priv # private nic
networks: # nic definition
pub:
driver: overlay
priv:
driver: overlay
volumes:
cker-db-data: # data volume definition
值得一提的是,为了使应用程序与work docker及其服务兼容,我将服务名称添加到工作站上的主机文件中。参赛作品如下:
- 127.0.0.1 ngxseeker
- 127.0.0.1 ckerws
- 127.0.0.1 seekr服务
- 127.0.0.1 ckerdb
- 192.168.1.62 ckerws
- 192.168.1.62波基
我被难住了,不知道发生了什么事。。我有一种感觉,这必须要解决我们的服务范围问题,然而,我在这方面有点不知所措。您是否尝试将它们放在同一个网络上,这对我来说似乎是一个网络问题。Nginx找不到它们(例如,如果您将其用作负载平衡器),您在这里没有被收取费用;如果你想让别人帮助你,请用你请求帮助的语言为你的服务提供描述性名称。我不会去猜测什么是“ckerws”,或者它应该做什么。坎坦卡鲁布尔穆斯如果你熟悉这个项目,这个服务的名字很友好。例如,secker(seeker)ws是web服务的缩写。这是术语,实际上与引擎无关,因为它通过ID引用资源,这是一个相当长的散列。调用服务中间件restfull web服务似乎是浪费时间的。为了清晰起见,这里是服务定义。ngxseeker:nginx上的Angular前端ckerws:seeker restful web服务-中间件seekr服务:业务逻辑服务,也就是resftul ckerdb:Database persistance layerYamaçKurtuluş谢谢你的建议,我已经尝试过了,它仍然无法解决中间件服务。好的,我找到了答案。问题的根源在于nginx中的路由。当调用进入nginx时,没有逻辑构建调用中间件服务。为了修复它,我必须在nginx中创建一个规则,该规则将匹配传入调用,并对web服务执行反向代理操作。处理分布式应用程序时要考虑的其他因素。。确保在前端应用程序上编写正确的端点名称,这样可以正确构建这些URL!我计划很快制作一个视频,我会把链接放在这里。