I’m confused at how this works and I haven’t been able to find any suitable docs on how it works.
This is what I want to do:
I have 6 replicates of my API: 0.0.0.0:8080 across 3 managers. Manager 1 has an nginx setup where the DNS points to.
In the nginx I have this(inside http > server > for the given domain):
resolver 127.0.0.11;
location ~ ^/api(.*) {
set $upstream myswarm_api:8089$1?$args;
proxy_pass http://$upstream;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
add_header Cache-Control no-cache;
}
Now my question is, does docker swarm automatically distribute traffic to all 6 replicas or just the first one that’s found to be up? If the later is true I’ve been doing this all wrong.
I see a lot of tutorials using upstream for load balancing across the cluster. I want this to work automatically when the cluster brings on new nodes so I don’t have to reconfigure it constantly.