You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloud Foundry部署Django执行cf push报错port 5432连接拒绝

故障定性

日志返回的Connection refused报错不属于身份认证故障,故障发生在TCP连接握手阶段,请求根本没有到达数据库身份校验环节,无需在账号密码凭证上重复排查。

排查与修复步骤
  • 校验Django数据库配置读取逻辑
    优先检查Djangosettings.py中的数据库配置,确认host、port值是从Cloud Foundry注入的VCAP_SERVICES环境变量下aws-rds配置段读取,而非硬编码值。将日志中打印的连接地址server-name.region-name.rds.amazonaws.com、端口5432,与cf env app-name-1返回的aws-rds配置段中host、port字段逐字比对,排除硬编码错误。

    注意:即使账号、密码、库名配置完全正确,只要host或port配置错误,就会直接触发连接拒绝报错。

  • 验证CF容器到RDS的网络连通性
    连接拒绝的最常见诱因是网络策略拦截,按以下操作验证:
    1. 执行cf ssh app-name-1进入应用运行容器
    2. 在容器内执行nc -zv <RDS实例真实host地址> 5432,如果返回连接拒绝或超时,即可确认是网络链路不通,和应用代码无关
    3. 联系平台管理员核查两类配置:一是RDS实例绑定的安全组是否放行了Cloud Foundry应用节点出口IP段对5432端口的访问;二是RDS实例自身的IP白名单、公网/私网访问配置是否拦截了来自CF平台的请求
  • 校验RDS服务实例运行状态
    cf services返回的update succeeded仅代表服务broker侧操作执行完成,不代表RDS实例本身运行正常:
    执行cf service service-name-psql-db查看服务详情,确认实例未处于停止、故障、维护状态。如果是broker创建的RDS实例异常,可执行cf update-service service-name-psql-db触发实例修复,或删除重建服务实例后重新绑定应用。
  • 核对端口配置
    部分AWS RDS自定义配置、代理接入场景下的端口并非默认的5432,即使host地址正确,端口配置不匹配也会返回连接拒绝,需严格以VCAP_SERVICES中下发的port字段值为准配置Django连接参数。
故障类型快速判断规则
  • 报错包含Connection refused、Connection timed out、No route to host:均为网络/传输层故障,未进入数据库认证流程,和账号权限无关
  • 报错包含password authentication failed、database does not exist、permission denied:才属于身份认证、库表权限类故障

内容的提问来源于stack exchange,提问作者John Skiles Skinner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 06:36:16