I have a service which clients connect to using TCP. Currently there are 14 instances of this service, which are load-balanced by haproxy. Users on the internet connect to this service, and I have no control over the user's hardware which connects to this service.
The daemon which runs the service has been rewritten, and what I want to achieve is having a small number of users connect to the new daemon, leaving the rest of the users on the old version. I want to be able to control which clients connect to the new daemon (we know which IP ranges clients will be connecting from).
Once a client has connected to the new daemon, we don't want them to connect to the old daemon.
So I guess what we want to do is have haproxy choose a specific backend, for clients connecting to the front-end from a specific range.
Can this be done, and if so, how?
We are currently using haproxy 1.5.8 (packaged with our Linux distro), though we wouldn't rule out upgrading to a newer version if needed.
Create an acl based on src for the ip ranges and then use a new backend for that acl.
Should be straight forward and exact syntax is covered in the docs.