如何为CloudFoundry上部署的应用程序配置公共端口?

时间:2015-11-07 16:33:07

标签: tomcat spring-boot cloudfoundry

我在端口8080上运行了SpringBoot应用程序(默认使用Tomcat)。

我使用此命令将其部署到CloudFoundry Pivotal Platform:

cf push my-project -p build/libs/myproject-0.1.0.jar 

和这个manifest.yml

---
applications:
- name: my-project
  memory: 1024M
  host: my-project
  port: 8080

这是从应用程序启动时的日志开始的:

INFO 25 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
INFO 25 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat
INFO 25 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/] 

可从此网址访问该应用程序:

 http://my-project.cfapps.io/hello_world

但是我需要它可以从端口8080访问:

 http://my-project.cfapps.io:8080/hello_world

如何更改应用程序正在侦听的公共端口?

谢谢

2 个答案:

答案 0 :(得分:2)

无法更改客户端连接的公共端口,以便在Cloud Foundry上联系您的应用。这在PaaS /托管平台中大多是不可能的,因为平台运营商决定哪些端口对公共互联网开放。

为什么需要在端口8080上提供应用程序?也许有办法解决这个问题。

有关更多详细信息,您的应用程序在Cloud Foundry运行时内运行,因此需要侦听该运行时定义的端口。建议的方法是侦听$PORT环境变量中指定的端口。

对于应用程序清单,我建议查看有关这些清单的确切支持的文档:https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#optional-attributes

答案 1 :(得分:0)

您可以通过以下配置在Spring Boot的application.properties中更改它:

server.port=9999

请查看Spring Boot reference docs的这一部分。

显然,您还需要在Cloud Foundry清单文件中进行更改。