在 Rancher/Docker 中调用 RESTful API 没有端口
Make RESTful API calls in Rancher/Docker without a port
我们的应用程序是 Spring 引导微服务的集合。今天,在我们的非 Docker 世界中,我们使用 Spring Cloud Netflix (Eureka) 进行服务注册和发现。这使我们能够让服务通过虚拟 IP (VIP) 相互通信——GET http://service-name/resources/{id}.
我们正在 Rancher 1.6(使用 Cattle)中迁移到 Docker、运行。我们希望能够继续使用相同的 HTTP 调用;但是,看来我们现在需要包括端口——GET http://service-name:1234/resources/{id}.
有没有办法让服务链接只知道它应该使用的端口?
谢谢。
http://service-name/resources/...
也有一个端口,只是没有显示,因为它是端口 80,这是 HTTP 的默认端口。因此,如果您的容器正在侦听 80 而不是 1234,您可以为 Rancher 编写相同的内容。
您的意思是在端口 80
上提供您的服务
您可以在您的环境中设置反向代理服务器,将您的请求重定向到不同应用程序的不同端口
您可以使用任何使用 nginx 或 apache http 服务器或其他任何东西的自定义反向代理解决方案来实现此目的
或者你也可以看看 link here for Traefik,这可能是一个更好的解决方案。
如果您从未在 docker 中设计过任何微服务,我想这个视频会对您有所帮助,因为它对我帮助很大。
https://www.youtube.com/watch?v=Qw9zlE3t8Ko&feature=youtu.be
视频摘要:他们使用 python 创建了简单的 API 端点。并使用另一个容器调用它。所以两个容器互相交谈。
看看 jwilders 的 nginx 代理,它很容易设置,并且允许您将(子)域转发到容器中的特定端口(反向代理)。
我们的应用程序是 Spring 引导微服务的集合。今天,在我们的非 Docker 世界中,我们使用 Spring Cloud Netflix (Eureka) 进行服务注册和发现。这使我们能够让服务通过虚拟 IP (VIP) 相互通信——GET http://service-name/resources/{id}.
我们正在 Rancher 1.6(使用 Cattle)中迁移到 Docker、运行。我们希望能够继续使用相同的 HTTP 调用;但是,看来我们现在需要包括端口——GET http://service-name:1234/resources/{id}.
有没有办法让服务链接只知道它应该使用的端口?
谢谢。
http://service-name/resources/...
也有一个端口,只是没有显示,因为它是端口 80,这是 HTTP 的默认端口。因此,如果您的容器正在侦听 80 而不是 1234,您可以为 Rancher 编写相同的内容。
您的意思是在端口 80
您可以在您的环境中设置反向代理服务器,将您的请求重定向到不同应用程序的不同端口
您可以使用任何使用 nginx 或 apache http 服务器或其他任何东西的自定义反向代理解决方案来实现此目的
或者你也可以看看 link here for Traefik,这可能是一个更好的解决方案。
如果您从未在 docker 中设计过任何微服务,我想这个视频会对您有所帮助,因为它对我帮助很大。
https://www.youtube.com/watch?v=Qw9zlE3t8Ko&feature=youtu.be
视频摘要:他们使用 python 创建了简单的 API 端点。并使用另一个容器调用它。所以两个容器互相交谈。
看看 jwilders 的 nginx 代理,它很容易设置,并且允许您将(子)域转发到容器中的特定端口(反向代理)。