2015-11-26 50 views
1

我目前正在云代工厂部署,现在我有一个前端服务器和一个后端服务器。
两者均作为微型服务部署在Cloud Foundry nodejs构建包中。在Cloud Foundry上创建私有实例

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

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

感谢

安德烈亚斯

感谢您的信息为止。

但是我不明白我现在怎么可以隐藏我的后端实例从外部访问,但允许访问frontrontend?

基本上我需要在我的空间中设置什么样的轮询,以便只允许我的前端实例访问端口80(可以说前端IP为168.192.0.5)。

你能举个例子吗?

+0

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

回答

0

如果您正在使用OSS Cloud Foundry上,你可以把后端服务进入自己的空间,然后设置为空间安全组规则,使他们不会对外界IP地址的回应: https://docs.pivotal.io/pivotalcf/adminguide/app-sec-groups.html

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

0

如何使用“cf push myjavaapp --no-route”? 无路由选项告诉Bluemix您的后端不是Web应用程序。

0

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

cf ic ip bind {public_ip} {container_name} 

但是不要为您的后端微服务分配公共地址。我几个星期前为一个容器中的微服务创建了一个简单的例子,你可以在 https://hub.jazz.net/project/matthiashub/bluemix-unistuttgart-container/overview找到代码我承认这是在Java中完成的,而不是在nodejs中完成的,但我认为你明白了)