您如何构建 node.js 动态 Web 服务器? (升级服务器恕不另行通知)

How do you build node.js dynamic web server? (upgrade server without notice)

我知道 node.js 服务器缓存模块。因此,在启动服务器后,所有文件都会得到 "compiled" 并且您对代码的所有更改都可以在重新启动服务器后生效。

但是,如果网站上始终有数百个用户在线 - 您如何以您的数百个客户端不会注意到任何故障、停机时间的方式进行这些更改(重新启动服务器)?

请给我一些关于(我猜)可扩展性、平衡服务器负载等的指南和(你自己的)示例,这样我也可以用 node.js 制作很棒的大型动态网站。

使用 Node.JS 实现持续正常运行的最佳方法是拥有 2 个节点服务器 运行 并使用 nginx 和上游提供商代理它们。这样你就可以重启一个,而另一个承担流量负载,然后对另一个节点服务器做同样的事情。

您的 nginx 配置将使用类似于以下内容的内容:

upstream backend {
    server backend1.example.com       weight=5;
    server backend2.example.com:8080;
    server unix:/tmp/backend3;

    server backup1.example.com:8080   backup;
    server backup2.example.com:8080   backup;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

有关 nginx 代理和上游提供商的更多信息,请参阅 nginx 文档:http://nginx.org/en/docs/http/ngx_http_upstream_module.html