我有两个使用nodejs_buildpack的云铸造应用程序。
一个是One服务器,另一个是api。
我想限制对api应用程序的访问仅限于api服务器。
这可能是cloudfoundry中的OOTB吗?
可以将api绑定到api服务器上吗?
发布于 2018-08-09 04:37:21
有几种方法可以做到这一点。您不能将应用程序接口“绑定”到web服务器,但您可以利用Container to Container Networking让web服务器直接与其对话(假设API和web服务器被部署为单独的应用程序)。然后,您可以使用--no-route标志推送API服务器,使其不向GoRouters公开。
或者,如果您使用的是足够新的CF版本,您可以将两者部署在同一个包中,并使用Procfile将该应用编程接口标记为worker进程(或者无论您的NodeJS构建包如何标记非web进程。据我所知,它仍然可以在端口上侦听,但它不会绑定到向GoRouter公开它的$PORT环境变量。
在这两种情况下,因为您的any服务器将通过私有In与API通信,所以您需要完全代理它们,这样对API的任何调用都不会在浏览器端发生,因为它们会失败。
编辑:
由于注释似乎不能让我添加多行代码块,因此示例Procfile将如下所示(注意:我不是节点专家,不知道该命令是否有效):
web: npm start web-server
worker: npm start api-server简而言之,就是为每一行指定一个进程类型(必须有一个web进程,并且要有一个与传递给cf push的-c标志等效的东西。
https://stackoverflow.com/questions/51734659
复制相似问题