NodeJs: Balanceamento de carga com o Node

From Wiki

Adicionar um balanceador de carga é importante para dividir o tráfego entre vários servidores de aplicativos.

Como sugestão, podemos utilizar o HAProxy ou o node-http-proxy para isso.O HAProxy é o tipo de ferramenta ideal para ambientes de produção, a performance é boa e a configuração é simples. O node-http-proxy é uma ferramenta de proxy HTTP simples feita em NodeJs e pode ser utilizada para criar o seu próprio load balancer.

Abaixo adicionei um exemplo de como utilizar o node-http-proxy para balancear a carga entre dois servidores.


var httpProxy = require('http-proxy')
var http = require('http')
var proxy = httpProxy.createProxyServer()

var urls = [
  'http://<IP_DO_SERVIDOR_1>:8080',
  'http://<IP_DO_SERVIDOR_1>:8080'
]

function randomUrl() {
   return urls[Math.floor(Math.random()*urls.length)]
}

var server = http.createServer(function (req, res) {
   proxy.web(req, res, { target: randomUrl() })
})

server.on('upgrade', function (req, socket, head) {
  proxy.ws(req, socket, head, { target: randomUrl() });
})

server.listen(80)

Ver também