You can run software load balancers on commodity hardware.
Plus virtualisation,containers like docker and tools like puppet and ansible help to leverage software load balancer to the maximum extent.
Unless your requirement is really really big software load balancers should suffice. Nginx does a good job and you can go with Nginx plus for paid support,more features and peace of mind.
There is good documentation on the Nginx website and so I will not be repeating the steps.
3.IP Hash(Simple session persistence)
4.Generic Hash(Simple session persistence)
5.Least Time(only available in NGINX Plus)
I have been able to tinker around with this on Debian and CentOS my preferred Linux distros. On a separate note Need to see if IIS 10 on Nano server can do load balancing.