Cloud foundry 使cloud foundry api只能从cloud foundry web服务器访问

Cloud foundry 使cloud foundry api只能从cloud foundry web服务器访问,cloud-foundry,Cloud Foundry,我有两个使用nodejs_buildpack的云铸造应用程序 一个是Web服务器,一个是api 我想将api应用程序的访问权限限制为仅Web服务器 cloudfoundry中可能存在OOTB吗 我可以将api绑定到Web服务器吗?有几种方法可以做到这一点。您不能将API绑定到web服务器,但您可以利用它让web服务器直接与它对话,前提是API和web服务器作为单独的应用程序部署。然后,可以使用-no-route标志推送API服务器,使其不向GoRouter公开 或者,如果您使用的是足够新的CF版

我有两个使用nodejs_buildpack的云铸造应用程序

一个是Web服务器,一个是api

我想将api应用程序的访问权限限制为仅Web服务器

cloudfoundry中可能存在OOTB吗


我可以将api绑定到Web服务器吗?

有几种方法可以做到这一点。您不能将API绑定到web服务器,但您可以利用它让web服务器直接与它对话,前提是API和web服务器作为单独的应用程序部署。然后,可以使用-no-route标志推送API服务器,使其不向GoRouter公开

或者,如果您使用的是足够新的CF版本,则可以在同一个包中部署这两个版本,并使用Procfile将API标记为工作进程,或者使用NodeJS buildpack标记非web进程。据我所知,它仍然可以在端口上侦听,但它不会绑定到$port环境变量,而$port环境变量会将它暴露给GoRouter

在这两种情况下,因为您的Web服务器将通过私有IP与API进行通信,所以您需要完全代理它们,这样对API的任何调用都不会发生在浏览器端,因为它们会失败

编辑:

由于注释似乎不允许我添加多行代码块,因此示例Procfile的外观如下所示:我不是节点专家,也不知道该命令是否实际有效:

web: npm start web-server
worker: npm start api-server

它的长与短是指你给出的每一行进程类型,你必须有一个web进程,以及与你在cf push上传递的-c标志相当的东西。

非常感谢你的回答。您是否有Procfile如何工作的示例。这似乎很理想