Load balancing since Node v0.12.2 - cluster, pm2 or nginx

久未见 提交于 2019-12-03 03:24:09

TL;DR

If it's just pm2 vs. nginx go for nginx. Better: both. Best: a even broader setup.

If you want the most mature load balancing features use HAProxy. It's do one thing best. You'll get SSL-termination, ACLs and it being very lightweight. I can't prove with numbers, but I feel it has the lowest hit on http requests. A good read is this.

If you also need to serve (at least some) static content your goto option is nginx for its superior capabilities in this field. Also of your list it's the only one to provide such a feature. Except for node itself, but doing it very poorly.

pm2 feels very heavy-weight IMO and tends to break more often. It's capabilities of process load balancing are very good and secures uptime of your node process. It abstracts cluster.

cluster feels just 'being fixed' to a bare minimum. In the past and maybe still the os-level support lead to different behaviours on different platforms. For example, bias to single processes.

My current setup is:

  • HAProxy for cluster wide loadbalancing, including balancing several instances of a process per machine
  • CDN for static content (e.g. Cloudinary)
  • pm2 for process load balancing
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!