0

我有 2 个机架空间服务器。

我正在尝试使用 mongoose 连接到我的数据库(在 [Server 1] 上的我的 app.js 中):

// DB
var mongoose = require('mongoose');
var MongoStore = require('connect-mongo')(express);
var dbSession = 'mongodb://root:password@[Server 2]:27017'
mongoose.createConnection(dbSession);

在 /etc/mongo.conf 中的 [Server 2] 上,唯一打开的是:

dbpath=/var/lib/mongodb
logpath=/var/log/mongodb/mongodb.log
logappend=true
# Bind ip for our app server
bind_ip=[Server 1]

我该怎么做:A) 检查我是否能够从 [服务器 1] 连接到 [服务器 2] 并真正让它工作?

4

1 回答 1

4

不确定您的防火墙配置,但您可能需要在 mongodb 服务器(设置中的服务器 2)上打开端口 27017。类似于以下内容:

sudo iptables -A INPUT -p tcp --dport 27017 -s [APP_SERVER IP ADDRESS HERE] -j ACCEPT

如果您还没有设置防火墙规则,我建议您阅读 Ubuntu 的 Iptables 指南: https ://help.ubuntu.com/community/IptablesHowTo

此外,如果您还没有,您可能希望使用私有 IP 地址在服务器之间进行通信:

http://www.rackspace.com/knowledge_center/article/using-the-private-ip-address-on-your-cloud-server

更新——2013 年 9 月 22 日

我启动了 2 个 Rackspace 服务器并执行了以下步骤以成功地在它们之间进行通信。

tl;dr 问题可能是 /etc/mongo.conf 文件中的 bind_ip 参数。

如果您复制并粘贴这些命令,请在安装 mongodb 时删除链接中的 '[remove this]' 部分。

服务器 1:

  • sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
  • echo 'deb http://[remove this]downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
  • apt-get 安装 mongodb-10gen
  • apt-get 更新
  • apt-get 安装 mongodb-10gen
  • mongo [Server 2 public ip]:27017 // 测试与服务器 2 的连接
  • sudo apt-get install python-software-properties python g++ make
  • sudo add-apt-repository ppa:chris-lea/node.js
  • apt-get 更新
  • apt-get install nodejs=0.10.18-1chl1~precise1
  • npm 安装猫鼬
  • npm 安装连接-mongo
  • npm 安装快递
  • vim 服务器.js
  • 节点服务器.js

这是我使用的 server.js 文件:

var express = require('express')
var mongoose = require('mongoose');
var MongoStore = require('connect-mongo')(express);
var dbSession = 'mongodb://[Server 2]:27017';
mongoose.connect(dbSession);

var Dog = mongoose.model('Dog', {name: String});

var dog = new Dog({name: 'Fido'});
dog.save(function(err){
  if(err){
    console.log(err);
  }
  else{
    console.log('success');
  }
});

服务器 2:

  • sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
  • echo 'deb http://[remove this]downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
  • apt-get 更新
  • apt-get 安装 mongodb-10gen
  • iptables -A INPUT -p tcp --dport 27017 -s [服务器 1 私有 ip] -j ACCEPT
于 2013-09-21T20:46:22.590 回答