如何在Pivotal中配置指定端口的Actuator HTTP健康检查URL?
解决Cloud Foundry中指定Actuator端口进行健康检查的问题
我明白你遇到的困扰了——在Cloud Foundry里,当应用主端口和Actuator管理端口分开部署时,直接在health-check-http-endpoint里写带IP和端口的路径确实行不通,因为这个字段只支持路径部分,CF会把你写的${CF_INSTANCE_IP}:8091/actuator/health当成完整的请求路径,自然访问不到正确的端点。
下面给你两种可行的解决方案:
方案一:使用Manifest配置指定健康检查端口(推荐)
如果你的Cloud Foundry版本在v2.10及以上(大部分现代CF环境都满足),可以直接在manifest.yml里新增health-check-http-port字段来指定Actuator的端口:
applications: - name: your-app-name instances: 1 memory: 1G buildpacks: - java_buildpack health-check-type: http health-check-http-endpoint: /actuator/health health-check-http-port: 8091 # 保留你原有的其他配置项...
这个配置会明确告诉CF:把HTTP健康检查请求发送到实例的8091端口,路径是/actuator/health,完美匹配你的Actuator部署场景。
方案二:使用CLI命令配置(兼容旧版本CF)
如果你的CF环境版本较低,不支持health-check-http-port字段,可以用CF CLI命令直接设置健康检查的端口和端点:
# 替换YOUR_APP_NAME为你的实际应用名称 cf set-health-check YOUR_APP_NAME http --endpoint /actuator/health --port 8091
执行完这个命令后,CF会立即更新应用的健康检查配置,后续的健康检查请求就会自动指向8091端口的Actuator健康端点了。
验证配置是否生效
部署或更新配置后,你可以通过以下方式确认健康检查配置是否正确:
- 运行
cf app YOUR_APP_NAME,在输出的Health Check模块查看端口和端点信息 - 查看应用日志(
cf logs YOUR_APP_NAME --recent),检查是否有来自CF健康检查组件的请求打到了8091端口的/actuator/health路径
内容的提问来源于stack exchange,提问作者Marcelo Henrique




