I want to load balance HTTPS requests across several Linux servers. The application requires session affinity, so once a user gets connected the same server needs to handle all subsequent requests from that user. Is there a reliable way to do this without deploying an external load balancing router or adding any additional hardware? The application will be deployed to a number of clients, some of whom are reluctant to buy more hardware.
I have used mod_proxy_balancer: http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html
It has the stickyness you need and is a software only solution.
Hardware load balancers provide better performance but you have the option of running a software-only load balancer. There are plenty of open source options available.