Node.js介绍

时间:2012-07-31 11:18:49

标签: node.js

请原谅我对node.js的无知。我已经开始阅读node.js并且有些感觉可能是错误的。所以需要它来澄清

  1. 当我们使用createServer()方法时,它是否创建了一个虚拟服务器。不确定术语“虚拟”是否合适,但它是我能描述的最好的:)
  2. 我很困惑,我应该如何部署我的应用程序,其中包含node.js +其他自定义js文件作为其一部分。如果我在主服务器中部署我的应用程序,这是否意味着我有两台服务器?
  3. 感谢您的支持。

2 个答案:

答案 0 :(得分:2)

我会尽力回答:

<强> Q1:

createServer基本上创建了一个进程,该进程在指定的端口上侦听请求。所以是的,您可以将其称为虚拟服务器,该服务器会不断监听端口的请求。

<强> Q2:

是的,你可以说它现在有2台服务器

例如:你的服务器最初有apache监听端口80(你可以http://example.com/访问它默认查找端口80)

然后您还启动节点服务侦听其他端口,例如:端口8456(您可以将其作为http://example.com:8456/访问,它将查找端口8456)

所以是的,你可以有两台服务器。

修改

:那么如果页面由物理服务器和node.js创建的虚拟服务器提供服务会有什么不同?

物理服务器和节点服务器是两个不同的东西,并且单个请求都不可能同时发送到这两个服务器。

例如: 我使用apache服务器来托管在PHP上运行的网站。它提供我网站的所有html内容(包括连接到mysql的数据)。 一些请求可能是:

  1. http://example.com/reports.php
  2. http://example.com/search.php
  3. 另一方面,我可能会将nodejs服务器用于另一个目的。例如:我可能将它用于API,它返回JSON / XML。我可以通过使用javascript或来自PHP的简单CURL命令进行AJAX调用来自己使用此API来获取一些动态内容。或者我也可以向公众提供此API。 一些请求可能是:

    1. http://example.com:8456/getList?apikey=&安培;参数1 =&安培; param2的=
    2. 我选择用作API的NodeJs服务器是因为它能够处理并发请求,因为它的异步文件操作将比PHP快得多。

      在这种情况下,我有一个网站不仅在PHP上工作,而且它结合了两种不同的技术(Apache和Nodejs上的PHP),因此2台服务器完全不同,在同一台服务器上运行,但有自己的执行空间。

答案 1 :(得分:0)

第三个问题: 那么,如果页面由物理服务器和node.js创建的虚拟服务器提供服务会有什么不同?

如果我可以添加,那么它就是一个虚拟服务器,因为apache是​​一个虚拟的http服务器,可以监听任何端口。当然,apache有更多的模块和插件以及配置,而Node更轻(有点像WEBrick for rails),非阻塞和敏捷的构建。然后apache更稳定..换句话说,它是软件的决定,两者都坐在服务器上听你设置的特定端口。

那就是说有部署方法允许你将节点应用程序放在软件前面,如nginx(另一个服务器端软件)或HAproxy(负载处理功率很大),所以真的完全取决于你如何选择配置它。

也许我离你的问题很远,但我希望这有帮助!

另外,你应该给另一个人答案,他先来了;)