NodeJs: Balanceamento de carga com o Node
Adicionar um balanceador de carga serve 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
- NodeJs: Instalando o NodeJs no Linux
- MongoDB: Instalando o MongoDB no Linux
- Nginx: Instalando o Nginx no Linux