当用户访问站点时,数据库是由用户直接访问,还是由服务器代理访问的呢?
发布于 10 年前 作者 think2011 5137 次浏览 最后一次编辑是 8 年前

例如 node.js的服务器在 1.1.1.1, 数据库在1.1.1.2 当用户IP(6.6.6.6)访问 1.1.1.1服务器时,数据库的访问是怎么样的一个过程呢?

过程1 6.6.6.6 访问1.1.1.1,接着6.6.6.6再访问1.1.1.2 过程2 6.6.6.6 访问1.1.1.1,1.1.1.1再访问1.1.1.2

我认为应该是过程2,希望对网络比较了解的朋友能确认一下。

6 回复

这里的用户(用户代理)是指浏览器吗?服务器端的Node.js应用是Web服务器吗?

用户是指当前用户所在的网络IP。 node.js服务器是指,node.js所在的服务器的IP。

就是想知道。 假如:

  1. node.js服务器和数据库服务器都在国外
  2. 用户在国内 用户访问 数据库服务器极慢,但是访问node.js服务器稍微快一些。 因为node.js的应用需要用到数据库服务器。

那问题就是: 用户使用应用时,会不会访问到数据库服务器呢?因为访问很慢。

@think2011 客户端应用和服务器端Node.js应用程序究竟是怎么实现的?怎么实现的就怎么访问。另外,这用户代理究竟是浏览器,还是个App呢?用户不能是个IP,它必须得是个进程。

@bnuhero 好像说的有点远了。 实际情况是这样的,我在做一个博客系统,用的是node.js。 部署的时候,配置的数据库是在mongoHQ(一个提供免费mongodb数据库服务商)上的。 整个node.js博客程序部署到cloud9(一个提供免费node.js环境的服务商)。

经过测试之后发现 我(用户)访问cloud9比较快,但是访问mongoHQ很慢,接着就想到,当我使用博客系统的时候,是不是不会访问到mongoHQ呢?因为需要做数据库操作的时候,有可能是由cloud9去访问数据库的,所以就不会慢?

@think2011 你的博客系统是一个Node.js应用,部署在Cloud9上。当客户端发出的请求涉及到数据库操作时,由Node.js应用访问数据库,获得数据,生成返回的视图,再返回给客户端。所以,是过程2。

@bnuhero 非常感谢! :D

回到顶部