【问题标题】:How do you build node.js dynamic web server? (upgrade server without notice)如何构建 node.js 动态 Web 服务器? (升级服务器恕不另行通知)
【发布时间】:2016-02-14 22:20:46
【问题描述】:
我知道 node.js 服务器缓存模块。因此,启动服务器后,所有文件都会“编译”,并且您对代码的所有更改都可以在重新启动服务器后生效。
但是,如果网站上总是有数百名用户在线 - 您如何进行这些更改(重新启动服务器)以使数百名客户端不会注意到任何问题和停机时间?
请给我一些关于(我猜)可扩展性、平衡服务器负载等的指南和(你自己的)示例,这样我也可以使用 node.js 制作很棒的大型动态网站。
【问题讨论】:
标签:
javascript
node.js
dynamic
server
scalability
【解决方案1】:
使用 Node.JS 实现持续正常运行的最佳方法是运行 2 个 Node 服务器并使用 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