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

标签 javascript node.js dynamic server scalability

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

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

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

最佳答案

使用 Node.JS 实现持续正常运行的最佳方法是让 2 个 Node 服务器运行并使用 nginx 和上游提供商代理它们。这样您就可以重新启动一个,而另一个承担流量负载,然后对另一个 Node 服务器执行相同的操作。

您的 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

关于javascript - 你如何构建 node.js 动态 Web 服务器? (升级服务器恕不另行通知),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35398720/

相关文章:

javascript - 处理多个条件的正则表达式

javascript - 如何使用 require({缓存 :{ in dojo layers?

javascript - javascript中的原型(prototype)继承,它是如何工作的?

asp.net - 使用 Roslyn 动态编译 Controller

php - 如何为动态创建的元素分配唯一 ID - Javascript

javascript - 使用 npm react-native-canvas latest 在 react-native 中使用 canvas.toDataURL() 时出错

javascript - ejs模板数据未插入到mongodb中

node.js - 我尝试使用 NPM 安装 IPFS 模块,但出现以下错误

javascript - 如何设计用于导出的 typescript 项目

C,具有多个动态分配数组的结构是否需要为每次分配调整大小?