【问题标题】:What are my options when it comes to node.js lifecycle?关于 node.js 生命周期,我有哪些选择?
【发布时间】:2012-03-25 07:04:22
【问题描述】:

有没有关于如何使用 node.js 托管多个 Web 应用程序的示例或约定?

我已经知道 node 本身可以用来构建服务器,但我很好奇是否存在你不必一直运行它的实现。严格来说,可能托管了多个站点,每个站点都有自己的框架副本、静态文件和自定义功能。

或者,也许您确实运行了一个节点实例并编写了一个多站点架构,以确保一个坏站点不会以某种方式导致服务器停机?

虚拟主机,确保一个站点不会崩溃其他站点...这些都是其他平台已经考虑过的事情,但是我在寻找节点时遇到了一些困难! :)

我已经知道 connect、express 和其他中间件,但是它不包括我在这里问的内容。

【问题讨论】:

    标签: node.js


    【解决方案1】:

    如果您担心运行时隔离,每个“站点”都应该运行自己的节点进程。然后使用像node-http-proxy 这样的代理来进行基于主机头的路由。另一个很棒的基于节点的选项是bouncy,但您不一定需要使用节点来执行基于主机的路由。你也可以使用 haproxy、nginx 等。

    每个节点进程的基线 RAM 开销非常小(~10mb - 15mb)。此外,如果您使用基于 HTTP 的路由,您可以轻松地将您的网站分布在机器、用户主目录等之间。

    如果您想以编程方式处理站点/主机注册,我将使用seaport,然后将主机名和主机+端口详细信息传回代理,以便动态路由表。这也使得跨多个节点进程扩展站点变得相当容易。

    祝你好运!

    【讨论】:

    • 10 到 15 MB 不会在一段时间后加起来相当多吗?与运行 php 的 Apache vhosts 相比,它允许每个请求设置和拆除(但最终在不实际服务请求时非常精简)?
    • @Omega 每个节点进程 10mb 加起来算不了什么,因为 apache 中的每个请求 4MB 是巨大的,所以当节点需要 50-100 时,确保它为零,但 apache 会处理 1000req/s 时占用 4gb。您在这里担心错误的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多