2015-11-26 49 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中完成的,但我認爲你明白了)