【发布时间】:2020-12-26 15:35:42
【问题描述】:
我正在尝试使用 pg npm 包通过 NodeJS 应用程序从 EC2 服务器连接到 Amazon RDS (Postgres) 实例。我收到错误的错误(请注意,我正在通过反应应用程序访问我的节点后端): 选项 /users/login 200 0.424 毫秒 - 2 从池中获取客户端时出错错误:连接因连接超时而终止
我已在本地测试过该应用程序,一切正常(包括连接到 RDS),但在服务器上运行该应用程序后,我无法连接。
为了简化问题,我刚刚在 NodeJS 路由文件中明确输入了我的凭据,因此我知道环境变量等没有问题。然后我将我的代码推送到服务器,按原样拉取并运行它。没有运气。从连接的角度来看,我只是创建了一个池(需要来自 pg 的池),然后使用 pool.connect 和 client.query 来发出请求。
我觉得它在本地工作,我的网络/安全组的问题是 AWS 问题,但我觉得我已经尝试了所有方法:
- 确保数据库设置为公共
- 创建了一个新的安全组并将其添加到 EC2 和 RDS
- 完全打开端口(入站和出站)
- 创建 VPC 并添加到 EC2 和 RDS
- 已检查 VPC 子网 NACL 上的入站/出站是否打开
任何帮助将不胜感激。我要疯了
【问题讨论】:
-
按池,您的后端在私有或公共子网中运行?
-
@Marcin 抱歉,我是 AWS 新手,不确定。我该如何检查?为了部署应用程序,我将前端和后端推送到我的 github,将整个东西拉到 ec2 实例上,然后像在本地一样使用 npm start 运行它
标签: node.js postgresql amazon-web-services amazon-ec2 amazon-rds