请原谅我对node.js的无知。我已经开始阅读node.js并且有些感觉可能是错误的。所以需要它来澄清
感谢您的支持。
答案 0 :(得分:2)
我会尽力回答:
<强> Q1:强>
createServer基本上创建了一个进程,该进程在指定的端口上侦听请求。所以是的,您可以将其称为虚拟服务器,该服务器会不断监听端口的请求。
<强> Q2:强>
是的,你可以说它现在有2台服务器
例如:你的服务器最初有apache监听端口80(你可以http://example.com/访问它默认查找端口80)
然后您还启动节点服务侦听其他端口,例如:端口8456(您可以将其作为http://example.com:8456/访问,它将查找端口8456)
所以是的,你可以有两台服务器。
修改强>
问:那么如果页面由物理服务器和node.js创建的虚拟服务器提供服务会有什么不同?
物理服务器和节点服务器是两个不同的东西,并且单个请求都不可能同时发送到这两个服务器。
例如: 我使用apache服务器来托管在PHP上运行的网站。它提供我网站的所有html内容(包括连接到mysql的数据)。 一些请求可能是:
另一方面,我可能会将nodejs服务器用于另一个目的。例如:我可能将它用于API,它返回JSON / XML。我可以通过使用javascript或来自PHP的简单CURL命令进行AJAX调用来自己使用此API来获取一些动态内容。或者我也可以向公众提供此API。 一些请求可能是:
我选择用作API的NodeJs服务器是因为它能够处理并发请求,因为它的异步文件操作将比PHP快得多。
在这种情况下,我有一个网站不仅在PHP上工作,而且它结合了两种不同的技术(Apache和Nodejs上的PHP),因此2台服务器完全不同,在同一台服务器上运行,但有自己的执行空间。
答案 1 :(得分:0)
第三个问题: 那么,如果页面由物理服务器和node.js创建的虚拟服务器提供服务会有什么不同?
如果我可以添加,那么它就是一个虚拟服务器,因为apache是一个虚拟的http服务器,可以监听任何端口。当然,apache有更多的模块和插件以及配置,而Node更轻(有点像WEBrick for rails),非阻塞和敏捷的构建。然后apache更稳定..换句话说,它是软件的决定,两者都坐在服务器上听你设置的特定端口。
那就是说有部署方法允许你将节点应用程序放在软件前面,如nginx(另一个服务器端软件)或HAproxy(负载处理功率很大),所以真的完全取决于你如何选择配置它。
也许我离你的问题很远,但我希望这有帮助!
另外,你应该给另一个人答案,他先来了;)