【问题标题】:Create private instance on Cloud Foundry在 Cloud Foundry 上创建私有实例
【发布时间】:2016-02-29 05:19:17
【问题描述】:

我目前正在 Cloud Foundry 上进行部署,现在我有一个前端服务器和一个后端服务器。
两者都使用 Cloud Foundry nodejs 构建包部署为微服务。

我想对外界隐藏后端服务器,只有我的前端服务器可以访问它。我怎么做? 如果我删除到后端服务器的路由,则服务器对外部隐藏,但我不知道如何从前端访问它。

我是 Cloud Foundry 的新手,也许有一个简单的方法。

谢谢

安德烈亚斯

感谢您到目前为止提供的信息。

但是我不明白我现在如何隐藏我的后端实例以防止从外部访问,但允许访问前端?

基本上我需要在我的空间中设置什么规则才能只允许我的前端实例访问端口 80(假设前端 ip 是 168.192.0.5)。

你能举个例子吗?

【问题讨论】:

  • 您正在寻找服务发现解决方案。谷歌搜索“Cloud Foundry 服务发现”我得到:docs.pivotal.io/spring-cloud-services/service-registry。因此,如果您使用的是 Pivotal Cloud Foundry,您可以使用 Netflix 的 OSS 工具包中基于 Eureka 的服务。如果没有,有很多方法可以推出自己的服务发现解决方案(注意每个应用实例都通过环境变量知道其外部 IP 和端口),但我不知道任何 OSS 开箱即用的解决方案。跨度>

标签: ibm-cloud cloud-foundry swisscomdev


【解决方案1】:

如果你用的是OSS Cloud Foundry,你可以把后端服务放到自己的空间里,然后给那个空间设置安全组规则,使它们不会响应外部IP地址: https://docs.pivotal.io/pivotalcf/adminguide/app-sec-groups.html

如果您使用的是 Pivotal Cloud Foundry,则可以使用 Spring Cloud Service Discovery,正如 Amit 所说。

【讨论】:

    【解决方案2】:

    使用“cf push myjavaapp --no-route”怎么样? no-route 选项告诉 Bluemix 您的后端不是 Web 应用程序。

    【讨论】:

      【解决方案3】:

      对公众隐藏后端微服务的另一种解决方案是使用容器(也可以在基于 Docker 的 Bluemix 上使用,请参阅 https://www.ng.bluemix.net/docs/containers/container_gettingstarted.html)。容器默认有私有IP,可以访问同一空间内的其他容器。您可以使用例如为前端微服务分配公共 IP下面的命令

      cf ic ip bind {public_ip} {container_name}
      

      但不要为您的后端微服务分配公共地址。

      (几周前,我为容器中的微服务创建了一个简单示例,您可以在以下位置找到代码 https://hub.jazz.net/project/matthiashub/bluemix-unistuttgart-container/overview 我承认这是在 Java 中完成的,而不是在 nodejs 中,但我想你明白了。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-27
        • 2020-04-27
        • 1970-01-01
        • 2019-10-19
        • 1970-01-01
        相关资源
        最近更新 更多