我有三个docker容器,每个容器都有一个在golang中实现的HTTP端点。
我通过单个docker-compose.yml
文件启动所有这三个文件,例如:
version: '2'
services:
first_service:
build: api/firstService
second_service:
build: api/secondService
third_service:
build: api/thirdService
每个服务公开的端点都是唯一的。例如:
所有三个容器都在端口80中公开其服务。
我有办法使用单个IP地址查询所有端点吗?例如:
如果我卷曲:
http://myservice/1/*
请求应该转到first_service
http://myservice/2/*
请求应该转到second_service,依此类推。
我意识到我可能需要创建某种反向代理。但我无法找到如何使用docker-compose进行配置并正确进行端口映射。我想要一个适用于docker 1.12的解决方案,最好是。 docker中的服务发现可能是一个相关主题。但我无法让这个工作,因为我是nginx的新手,服务发现等等。有什么帮助吗?
答案 0 :(得分:1)
使用nginx-reverse-proxy。
它允许您根据虚拟主机引导流量。
自动化所有内容的好工具是jwilder / nginx-proxy https://github.com/jwilder/nginx-proxy
一个好的博客显示了如何以最佳方式实现这一点的详细用法是https://blog.florianlopes.io/host-multiple-websites-on-single-host-docker/
祝你好运!