Cloud foundry CloudFoundry应用程序开放两个端口
我有一个打开两个端口的CF应用程序。AFAIK CF只能为其中一个创建路由-到位于Cloud foundry CloudFoundry应用程序开放两个端口,cloud-foundry,Cloud Foundry,我有一个打开两个端口的CF应用程序。AFAIK CF只能为其中一个创建路由-到位于VCAP\u APP\u端口或端口中的路由。如何创建到第二个端口的路由?我不介意使用单独的名称指向其他端口。Cloud Foundry将把来自80/443的TCP/WebSocket流量路由到指定的端口。您的应用程序无法侦听任何其他端口 您可以创建多个url映射,或者让两个应用程序使用消息传递或数据库服务相互通信。目前,Cloud Foundry上的应用程序无法将两个端口映射到其容器环境中。作为新的Diego运行
VCAP\u APP\u端口
或端口
中的路由。如何创建到第二个端口的路由?我不介意使用单独的名称指向其他端口。Cloud Foundry将把来自80/443的TCP/WebSocket流量路由到指定的端口。您的应用程序无法侦听任何其他端口
您可以创建多个url映射,或者让两个应用程序使用消息传递或数据库服务相互通信。目前,Cloud Foundry上的应用程序无法将两个端口映射到其容器环境中。作为新的Diego运行时的一部分,多端口映射已经公开,但目前无法通过API使用
根据需要,您可以查看使用Diego运行时的。一些文档可以是。重新提出一个旧问题,但CloudFoundry现在支持这一点。2019年4月左右增加了支持。请检查您的版本以查看它是否支持此功能 一般程序是:
- 使用cf cli更新应用程序,以列出它侦听的所有端口
- 使用路由应使用的特定端口将每个路由更新到应用程序。如果有两个端口,则需要两条或多条路由,每条路由一个端口
- 重新启动应用程序
现在您必须使用
cf curl
手动更新这些记录。可以在此处找到说明:。希望将来的cf cli版本能使这更容易。如其他一些评论所述,现在在cf中可以为应用程序使用多个端口。CF文档中有一个描述如何执行此操作的示例。
我按照说明进行操作,但仍然难以完全理解,这就是为什么我在这里提供了一个带有一些解释的分步指南(用实际值替换[]中的所有变量):
cf应用程序[应用程序名称]--guid
CF curl/v2/apps/[app_GUID]-X PUT-d'{“端口”:[80808081]}'
cf curl/v2/routes?q=host:[host\u NAME]
或使用cf curl/v2/apps/[APP\u GUID]/routes
并保存指向应用程序的路由的GUID([route\u GUID])cf curl/v2/routes/[route\u GUID]/route\u mappings
。使用cf curl/v2/route_mappings-X POST-d'{“app_guid”:“[app_guid]”、“route_guid”:“[route_guid]”、“app_port”:8081}”
可以添加到路由的映射(例如,此处到8081)cf curl/v2/routes/[ROUTE\u GUID]/ROUTE\u mappings
以显示所有路由映射。然后提取应该删除的路由映射的guid(例如,到端口8080的路由映射)。最后,运行cf curl/v2/route\u mappings/[GUID\u route\u MAPPING]-X DELETE
删除不需要的路由映射现在,当使用新配置的路由时,您的CF应用程序应该可以在8080以外的其他端口访问。我知道80/443/4443上有此路由。这是我想通过的。你能更详细地描述一下多个url是如何解决这个问题的吗?我想这里的重点是,你目前无法做到这一点(使用CF&DEAs)。正如@crhino所提到的,Diego正在支持这一点。这个答案已经过时,请参阅。