hey there, I have a question about using nginx as a reverse-proxy/load-balancer:
I have n
work-distribution machines which each can handle about 1Gbit/s in http-requests I receive from client applications that send me compute-requests (I mean they could handle more, but 1Gbits is the max network bandwidth the physical instances have and 2Gbits instances cost 4x the monthly fee).
From a very broad perspective, is there anything I can setup using traefik, so I can connect one url to those n machines?Things I have looked into so far:
- managed load balancers from AWS, Google, OVH: All of them are prohibitively expensive, even one fully used work distribution node generates about 150TB of monthly data traffic, so I would pay at least $1200 per month times the above mentioned 1Gbit/s nodes for load balancing
- DNS round-robin: One DNS A Record which has up to 8 ip address entries , but unfortunately the client programs seem to only be looking up DNS once, and then they run for days against the ip address they got during the last DNS lookup. Works-ish, but not really scalable beyond 8 ip addresses, and also not distributing load very smoothly
- self-managed traefik load-balancer. Here my question is, is there anyway a load-balancer could run with less then n * 1Gbits ? I.e. if it forwards the http requests to one of the nodes behind it, is there a way to forward the http requests without incurring the full network package bandwidth load to the machine that is running the nginx node? Something like only receiving the first http-header and rerouting the rest of the message to the ip of the worker nodes, so the network card of the traefik-lb machine doesn't even have to load the whole package?