Balancing load with Hipache
Hipache is a distributed proxy designed to route high volumes of HTTP and WebSocket traffic. Hipache supports dynamic configuration via Redis, so changing the configuration and adding vhosts does not require a restart. Based on the node-http-proxy library, Hipache provides support for load balancing websockets, SSL, dead backend detection, and is clustered for failover. Let's install it:
npm install hipache -g
Let's setup a host for both vision-web
and vision-api
by editing the hosts
file:
sudo nano /private/etc/hosts
Add two new entries:
127.0.0.1 web.vision.net 127.0.0.1 api.vision.net
And then flush the cache for these changes to take effect:
dscacheutil -flushcache
In order to configure a server, we will need a configuration file for each application we want to load balance. In our case, it is vision-web
and vision-api
. Here is the configuration file for vision-api
, ./config/server.json
. Importantly, we are running vision-api
on port 8443
. We configure...