如何配置MongoDB和nodejs以使用两个不同的服务器

时间:2017-06-04 18:59:49

标签: node.js mongodb

我想为网站做以下结构。

enter image description here

这个想法是将web应用程序放在一台服务器上,并将MongoDB放在另一台服务器上。他们是不同的机器。

在nodejs代码中,db的唯一配置是以下代码:

var connectString = 'mongodb://localhost/myDataBase';

将'localhost'替换为运行MongoDB的机器的IP地址'111.222.111.2',然后它应该可以工作。它是否正确?

与放在一台物理机上相比,这会使数据检索速度变慢吗?

两台机器如何相互通信以获取数据?通过什么协议?

2 个答案:

答案 0 :(得分:1)

是的,将localhost替换为MongoDB服务器的IP地址或域名将会起作用,前提是远程服务器允许连接Mongo(27017)的默认端口,并且中间没有防火墙阻止它。

它将比localhost连接慢,慢多少将完全取决于将两者分开的网络基础设施。

协议是TCP / IP套接字。

答案 1 :(得分:1)

您可以在一台服务器上安装NodeJS,在另一台服务器上安装MongoDB数据库。您可以使用mlab.com Mongo Database http://docs.mlab.com/(免费500MB)对其进行测试。
与该数据库连接的最简单方法是使用mongoose:

const mongoose = require('mongoose');
mongoose.connect("mongodb://<login>:<password>@ds140361.mlab.com:45242/mydb");

数据库受登录名和密码保护。但是,nodeJS的API应该独立保护 IMO如果一个服务器不在行星的一侧而第二个在另一侧,则不应该看到连接速度的差异。
关于协议:
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/