我使用docker compose在flask中部署多个微服务。这是编写代码
version: '3'
services:
test-api:
volumes:
- ./test-api:/test-api
build: test-api
ports:
- "5000:5000"
redis:
image: "redis:alpine"
search:
volumes:
- ./seach:/search
environment:
- HTTP_PORT=5000
- REDIS_URL=redis://redis:6379/0
build: search
ports:
- "5001:5000"
link:
- redis
现在我必须从单个URL访问这个服务,例如:http://example.com/test-api
或http://example.com/search
,但我无法确定,因为这两个服务运行在两个不同的端口上。我知道我需要使用nginx并对其进行配置,以便能够访问它们。但我不知道该怎么做。有人能帮我吗?或者至少给我一些文件让我读一下,以便了解路线?在
此外,两个服务都使用/health来报告健康检查的结果。如何访问这两个服务的健康检查?在
所以对于那些正在寻找快速解决方案的人,这里是我的nginx文件
正如您所写的,您应该使用放置在服务前面的负载平衡器。现在,您应该在不暴露端口的情况下创建docker网络。唯一公开端口的容器应该是nginx容器,以便处理所有客户端请求。}应该是同一docker网络的一部分,以便nginx能够将请求发送到正确的容器。您的
test-api
、search
和{docker-compose
文件应该如下所示:我建议你不要再使用
links
,它们已经过时了。 您可以通过以下链接了解docker networks
的更多信息:相关问题 更多 >
编程相关推荐