我想为网站做以下结构。
这个想法是将web应用程序放在一台服务器上,并将MongoDB放在另一台服务器上。他们是不同的机器。
在nodejs代码中,db的唯一配置是以下代码:
var connectString = 'mongodb://localhost/myDataBase';
将'localhost'替换为运行MongoDB的机器的IP地址'111.222.111.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/