jobwat
3/10/2017 - 1:09 AM

Docker nodes load balancer with nginx upstream

Docker nodes load balancer with nginx upstream

upstream app {
  server 192.168.99.100:8881;
  #server 192.168.99.100:8882;
  server 192.168.99.100:8883;
}

server {
    listen       80;
    server_name  localhost;

    location / {
        proxy_pass http://app;
    }
}

# Run 3 nodes
for i in 1 2 3; do
  nod="n$i"
  mkdir $nod
  echo "$nod" >> $nod/index.html
  docker run -d --name $nod -p 888${i}:80 -v `pwd`/${nod}:/usr/share/nginx/html:ro nginx
done

# Run a router proxy node
docker run --rm --name router -p 8888:80 -v `pwd`/default.conf:/etc/nginx/conf.d/default.conf nginx

# reload nginx from outside
docker exec -ti router nginx -s reload