Skip to content

Latest commit

 

History

History
15 lines (8 loc) · 1.56 KB

File metadata and controls

15 lines (8 loc) · 1.56 KB

Node.JS - Docker Compose - Nginx Proxy

This repo is an example use of docker-compose with a simple front Node.js app. I'm looking into diving as deep as possible into distributing workloads and this is my first attempt to practice with docker-compose. The idea is to load balance the requests amongst multiple nodes behind a proxy. I used an amazing image from jwilder/nginx-proxy to dynamically reload the conf files of an nginx-proxy (that's the tricky part) of containers.

A blog post that explains slightly better and in depth can be found at visualcosita.xyz.

But in few words this is a slightly opinionated use of the Express template to hold a counter of hits based on ip addresses that request them, the idea came from this python repo that is actually much more minimalist.

Usage

docker-compose up -d should boot the proxy->front->mongodb properly (or execute make, all other commands in the Makefile where used for debugging).

To scale the front service run docker-compose scale front=3. Requests should be distributed to all three nodes, this can be verified executing docker-compose logs and querying to the url curl front.IP_ADDRESS.xip.io or in a browser.

I used docker-machine since I'm a Mac user, but the docker-compose.yml should support native Linux environments (the difference should be the IP address to query).