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

Azure上Bitnami认证Cassandra VM无法远程连接Node.js应用问题

解决Azure上Bitnami Cassandra VM与Node.js驱动连接超时问题

针对你遇到的连接超时问题,我从三个问题点逐一给你解决方案:

1. 是否需要修改cassandra.yaml?需要,具体修改这些配置

Bitnami打包的Cassandra默认只绑定本地回环地址,外部应用根本连不上,必须调整以下配置项:

  • 找到配置文件路径:/opt/bitnami/cassandra/conf/cassandra.yaml
  • 修改以下参数:
    • listen_address: 改为VM的私有IP或者0.0.0.0(允许所有网卡监听,测试环境可用)
    • rpc_address: 同上,改为私有IP或0.0.0.0
    • broadcast_address: 改为VM的公共IP(让驱动能识别到外部可访问的地址)
    • broadcast_rpc_address: 同上公共IP
    • 确认seed_provider里的seeds是VM的私有IP(单节点部署的话就是自己)
  • 修改后重启Cassandra服务:
    sudo /opt/bitnami/ctlscript.sh restart cassandra
    

2. 是否需要配置防火墙?需要,分两层配置

Azure环境下要同时处理VM网络安全组(NSG)和VM内部防火墙:

网络安全组(NSG)配置

  1. 登录Azure门户,找到你的Cassandra VM对应的NSG
  2. 添加一条入站规则:
    • 源:根据你的Node.js应用位置设置(比如应用的公网IP,或者临时选“Any”测试)
    • 目标端口范围:9042(Cassandra的CQL通信端口)
    • 协议:TCP
    • 动作:允许
    • 优先级:设为比默认拒绝规则更高的优先级(比如100)

VM内部防火墙配置

Bitnami的VM默认用ufw防火墙,执行以下命令开放端口:

sudo ufw allow 9042/tcp
sudo ufw reload

如果是其他防火墙(比如firewalld),对应命令是:

sudo firewall-cmd --add-port=9042/tcp --permanent
sudo firewall-cmd --reload

3. 是否需要在Client中传入更多参数?需要,补充这些关键参数

Datastax的Node.js驱动需要几个关键参数才能正常连接,尤其是数据中心信息:

const cassandra = require('cassandra-driver');
const client = new cassandra.Client({
  contactPoints: ['${azure_vm_ip}'], // 你的VM公共IP
  localDataCenter: 'datacenter1', // Bitnami默认的数据中心名称,必须和Cassandra配置一致
  socketOptions: {
    connectTimeout: 10000 // 延长连接超时时间,默认可能是5000毫秒(5秒),不够用的话调大
  },
  // 如果Bitnami启用了认证(默认可能开启),还要加账号密码
  credentials: {
    username: 'cassandra', // 默认用户名
    password: '你的Cassandra密码' // 部署VM时设置的密码,或者查看Bitnami的初始化日志
  }
});

注意:localDataCenter必须和Cassandra配置里的data_center一致,你可以通过登录VM执行nodetool status确认。

内容的提问来源于stack exchange,提问作者kalpa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:31:54