设置具有多个网站的节点服务器,并使每个站点都在自己的线程上

时间:2016-11-14 04:38:30

标签: node.js multithreading ubuntu-server

我有一台笔记本电脑,我正在运行节点,一台带有四核处理器的Ubuntu服务器。

这个服务器上有2-3个站点的计划,我不是一个非常好的管理员,需要帮助让这个站点运行所以我不想从头开始运行虚拟机管理程序。有没有办法让节点主机3站点并让每个站点在自己的处理器线程上运行?我理解Node是单线程的,虽然我真的不需要为性能做这个(因为它仅用于开发)我喜欢这样做作为在节点中做事的练习,它会很酷!数据库有第二台笔记本电脑,所以我不担心资源。

所以在一个Ubuntu Server实例上的3个站点都在不同的线程上.....

2 个答案:

答案 0 :(得分:1)

目前还不完全清楚你要完成什么。以下是几个场景:

  1. 创建三个独立的node.js服务器,每个服务器都监听自己的端口,并且每个服务器都将独立运行自己的node.js进程。然后让每个客户端连接到相应的端口。

  2. 创建三个独立的node.js服务器,每个服务器都监听自己的端口,并且每个服务器都将独立运行自己的node.js进程。在三个Web服务器前面使用NGINX作为代理,您可以让NGINX将端口80上的所有请求从三个域中的每个域直接发送到相应的node.js Web服务器。以这种方式使用NGINX,所有三个Web服务器似乎都在默认端口80(或443)上运行,NGINX将它们分开并将它们引导到相应的Web服务器进程。

  3. 创建您自己的主node.js进程,该进程接收对所有三个域的请求,查看主机标头以查看请求实际指向的域,然后将该请求转发给相应的子进程。这与集群在node.js中的工作方式类似,但每个子进程都是您不同的Web服务器。就个人而言,我会使用NGINX中预先构建的功能为您完成此操作(如上面的选项2中所述),但如果您不想运行NGINX,可以自己编写代码。

  4. 使用某种负载均衡器代替NGINX,您的ISP可能已经将其连接到正确的服务器进程。

答案 1 :(得分:0)

如果您运行3个不同的应用程序,即。然后,它们将作为服务器上的不同进程运行,假设所有进程都运行在不同的端口上,同时运行它们应该没有问题。当您引用适用于单个进程的单线程节点时,每个进程都有自己的事件循环在运行。