要从我的应用服务器连接到我的mongodb服务器吗
我有2台机架空间服务器要从我的应用服务器连接到我的mongodb服务器吗,mongodb,ubuntu,nginx,rackspace-cloud,rackspace,Mongodb,Ubuntu,Nginx,Rackspace Cloud,Rackspace,我有2台机架空间服务器 [服务器1]一个应用服务器,位于使用nginx的反向前端代理之后 [服务器2]刚刚安装了mongodb的服务器(具有以下说明:) 我正在尝试使用类似mongoose的工具(在[Server 1]上的我的app.js中)连接到我的数据库: 在/etc/mongo.conf中的[Server 2]上,唯一打开的是: dbpath=/var/lib/mongodb logpath=/var/log/mongodb/mongodb.log logappend=true # B
- [服务器1]一个应用服务器,位于使用nginx的反向前端代理之后
- [服务器2]刚刚安装了mongodb的服务器(具有以下说明:)
dbpath=/var/lib/mongodb
logpath=/var/log/mongodb/mongodb.log
logappend=true
# Bind ip for our app server
bind_ip=[Server 1]
我怎样才能:
A) 检查是否能够从[Server 1]连接到[Server 2]并使其正常工作?不确定您的防火墙配置,但您可能需要打开mongodb服务器上的端口27017(设置中的服务器2)。如下所示:
sudo iptables -A INPUT -p tcp --dport 27017 -s [APP_SERVER IP ADDRESS HERE] -j ACCEPT
如果您还没有设置防火墙规则,我建议您阅读Ubuntu的Iptables指南:
此外,如果您还没有,您可能希望使用专用IP地址在服务器之间进行通信:
更新——2013年9月22日
我启动了2台Rackspace服务器,并执行了以下步骤以成功地在它们之间进行通信
tl;博士
问题可能是/etc/mongo.conf文件中的bind_ip参数
如果复制并粘贴这些命令,请在安装mongodb时删除链接中的“[删除此]”部分
服务器1:
- sudo apt key adv--keyserverhkp://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获取并安装mongodb-10gen
- apt获取更新
- apt获取并安装mongodb-10gen
- mongo[服务器2公共ip]:27017//用于测试与服务器2的连接
- sudo apt get install python软件属性python g++make
- sudo添加apt存储库ppa:chris lea/node.js
- apt获取更新
- apt get install nodejs=0.10.18-1chl1~精度1
- 安装猫鼬
- npm安装连接mongo
- npm安装快车
- vim server.js
- node 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--keyserverhkp://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获取更新
- apt获取并安装mongodb-10gen
- iptables-A INPUT-ptcp-dport27017-s[server1私有ip]-j ACCEPT
sudo iptables -A INPUT -p tcp --dport 27017 -s [APP_SERVER IP ADDRESS HERE] -j ACCEPT
如果您还没有设置防火墙规则,我建议您阅读Ubuntu的Iptables指南:
此外,如果您还没有,您可能希望使用专用IP地址在服务器之间进行通信:
更新——2013年9月22日
我启动了2台Rackspace服务器,并执行了以下步骤以成功地在它们之间进行通信
tl;博士
问题可能是/etc/mongo.conf文件中的bind_ip参数
如果复制并粘贴这些命令,请在安装mongodb时删除链接中的“[删除此]”部分
服务器1:
- sudo apt key adv--keyserverhkp://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获取并安装mongodb-10gen
- apt获取更新
- apt获取并安装mongodb-10gen
- mongo[服务器2公共ip]:27017//用于测试与服务器2的连接
- sudo apt get install python软件属性python g++make
- sudo添加apt存储库ppa:chris lea/node.js
- apt获取更新
- apt get install nodejs=0.10.18-1chl1~精度1
- 安装猫鼬
- npm安装连接mongo
- npm安装快车
- vim server.js
- node 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--keyserverhkp://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获取更新
- apt获取并安装mongodb-10gen
- iptables-A INPUT-ptcp-dport27017-s[server1私有ip]-j ACCEPT
mongo[Server2IP]
从[Server1]连接到[Server2],并且我成功地将一些东西插入到一个集合中。我想它在我的猫鼬代码中,但我根据mongodb://root:rootpw@[服务器2 IP]:27017
。我以root用户身份运行我的应用程序,使用node app.js
,我得到throw new Error('Error connecting to database')代码>今晚我将启动一些服务器来测试魔兽世界。回答得好!是的,成功了!我一定是把iptables搞砸了(不确定是什么),但我重新构建了两个实例,然后按照这些说明进行操作,它工作得非常好。先生,谢谢您的详尽回答!当然欢迎你。如果还有什么我可以帮忙的,请告诉我。我补充了这一点,但我认为我无论如何都不需要(因为它是完全开放的,我想先让它工作,然后再锁定它),但我可以使用mongo通过mongo[Server2IP]
从[Server1]连接到[Server2],并且我成功地将一些东西插入到一个集合中。我想它在我的猫鼬代码中,但我根据mongodb://root:rootpw@[服务器2 IP]:27017
。我以root用户身份运行我的应用程序,使用node app.js
,我得到throw new Error('Error connecting to database')代码>我会