2012-07-31 99 views
0

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

  1. 当我们使用createServer()方法时,它是否会创建一个虚拟服务器。不知道是否术语“虚拟”是合适的,但它是最好的,我可以形容它:)
  2. 我很困惑,我应该如何部署具有的node.js +其他自定义js文件作为它的一部分我的申请。如果我在主服务器上部署应用程序,这是否意味着我有两台服务器?

感谢您与我的轴承。

回答

2

我会尽量回答:

Q1:

createServer基本上创建监听指定端口的请求上的进程。所以是的,你可以称它为一个虚拟服务器,它不断地在端口监听请求。

Q2:

是的,你可以说,它现在已经2个服务器

对于例如:你的服务器开始监听80端口有阿帕奇(您可以通过默认的外观访问它http://example.com/它端口为80)

,然后你还需要启动节点服务监听其他一些端口如上:端口8456(你可以访问它http://example.com:8456/将寻找端口8456)

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

编辑

Q:因此,如果页面是由物理服务器和node.js中创建的虚拟服务器提供服务会有什么区别呢?

物理服务器和节点服务器是两种不同的东西,并且没有办法向两个服务器发送单个请求。

对于如: 我使用Apache服务器主机上运行PHP我的网站。它提供了我网站的所有html内容(涉及连接到mysql的数据)。 一些请求可能是:

  1. http://example.com/reports.php
  2. http://example.com/search.php

在另一端,我可能会使用服务器的NodeJS为完全另一个目的。例如:我可能会使用它作为返回JSON/XML的API。我可以使用这个API自己的一些动态内容通过使用JavaScript的AJAX调用或简单的CURL命令来自PHP。或者我也可能将此API提供给公众。 一些请求可能是:

  1. http://example.com:8456/getList?apikey= &参数1 = &参数2 =

我对用作API将是其处理并发请求的能力,并因为它的异步传送的NodeJS服务器的选择文件操作将比PHP快得多。

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

+0

啊!谢天谢地,我想我疯了:)。感谢您的回答。那么,如果页面由物理服务器和由node.js创建的虚拟服务器提供服务,会有什么不同? – 2012-07-31 14:25:06

+0

增加了一些解释...也检查了@ film42的答案 – swapnilsarwe 2012-08-01 08:02:41

+0

感谢swapnil的解释。 – 2012-08-01 09:40:48

0

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

如果我想补充,它在意义上的虚拟服务器Apache是​​一个虚拟HTTP服务器侦听任何端口上。当然Apache有更多的模块,插件和配置,因为Node的更轻(有点像WEBrick for rails),非阻塞和灵活的构建。然后再apache更稳定..换句话说,这是一个软件的决定,都坐在服务器上,监听你设置的特定端口。

这就是说,有一种部署方法可以让节点应用程序放在nginx(另一个服务器端软件)或HAproxy(负载处理功能强大)之类的软件之前,所以真的完全取决于你选择配置它。

也许我已经远离你的问题,但我希望这有助于!

此外,你应该给的答案,其他人,他来到第一;)

+0

谢谢film42的答案。事实上,我标记了swapnil的答案。美好的一天。 – 2012-08-01 09:47:51