Node.js支持跨服务器的多个负载平衡?

时间:2011-07-05 17:13:43

标签: node.js load-balancing

我很好奇node.js中的水平scalling 是否可以对多个虚拟服务器(如rackspace云服务器)进行负载均衡? 我读到了关于集群插件但我认为它只适用于具有多核cpu的单个服务器。

1 个答案:

答案 0 :(得分:10)

node-http-proxy

尝试roundrobin.js
var httpProxy = require('http-proxy');
//
// A simple round-robin load balancing strategy.
//
// First, list the servers you want to use in your rotation.
//
var addresses = [
  {
    host: 'ws1.0.0.0',
    port: 80
  },
  {
    host: 'ws2.0.0.0',
    port: 80
  }
];

httpProxy.createServer(function (req, res, proxy) {
  //
  // On each request, get the first location from the list...
  //
  var target = addresses.shift();

  //
  // ...then proxy to the server whose 'turn' it is...
  //
  proxy.proxyRequest(req, res, target);

  //
  // ...and then the server you just used becomes the last item in the list.
  //
  addresses.push(target);
});

// Rinse; repeat; enjoy.