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