反向代理golang docker容器
我有三个docker集装箱,每个集装箱都有一个用golang实现的HTTP端点。
我通过一个docker-compose.yml
文件启动他们三个,比如:
version: '2' services: first_service: build: api/firstService second_service: build: api/secondService third_service: build: api/thirdService
每个服务公开的端点是唯一的。 例如:first_service监听/ 1 / api; second_service监听/ 2 / api; third_service监听/ 3 / api
所有这三个容器都在80端口提供服务。
有没有办法让我查询所有的端点使用单个IP地址? 例如:
如果我curl: http://myservice/1/*
请求应该去first_service http://myservice/2/*
请求应该去second_service等等。
我意识到我可能不得不创build某种反向代理。 但是我无法find如何使用docker-compose进行configuration,并正确地进行端口映射。 我想要一个解决scheme,与docker1.12起,最好。 Docker中的服务发现可能是一个相关的主题。 但我无法得到这个工作,因为我是nginx新手,服务发现等任何帮助吗?
使用nginx-reverse-proxy。
它将允许您根据虚拟主机来引导您的stream量。
自动化一切的好工具是jwilder / nginx-proxy https://github.com/jwilder/nginx-proxy
一个很好的博客展示了如何以最好的方式实现这个的详细用法是https://blog.florianlopes.io/host-multiple-websites-on-single-host-docker/
祝你好运!
- 对于jwilder / nginx-proxy大于8kb / 16KB(和2MB)的文件,Laravel POST TokenMismatchException
- dockerNginx的反向代理没有错误,但得到空的有效负载返回
- 客户端无法通过nginx反向代理连接(https)到WebSocket服务器
- 防止redirect到https和URI hack nginx反向代理
- docker自定义networking连接之间拒绝
- Docker,nginx和一个服务器上的多个站点
- 从Docker容器内部,如何连接到本机的本地主机?
- 为什么这个nginx反向代理configuration为gitlab不起作用
- 用不同端口的nginx和docker容器实现反向代理