We are trying to find the most suitable load balancing solution that will work with our application, but I quickly found I don't know much on the subject. We were going to run Varnish Cache but we use client IP addresses at various levels and SSL - starting to get complicated... please help
Here's situation, we have one machine serving the below and looking spanning this across three. Probably share the one database.
Three types of traffic:
- Images for emails - Basic Apache traffic (minimal)
- Flash application - Large download(s) once per client
- SOAP Webservice - Up to a POST per client per second
The stack:
- Linux with PSAD
- Apache with Mod_Security
- Tomcat (Apache worker), JAX-WS app and MySQL database
Complications:
- Maxmind GeoIP at app - needs client's IP address
- mod_security on Apache - also wants IP address
- SSL for both the Flash app and all SOAP calls
This is a preemptive measure for the client so we don't have load problems to solve as such, except if we test a DOS attack :)
Would Pound or Crossroads work? Is a software load balancer the right solution?
You want an L3 load-balancer -- something that forwards the TCP traffic to a backend server without doing anything in the middle. Anything that proxies or otherwise intercepts your TCP connections and forwards them on is not going to work (or will involve significant configuration and fragility). I use and recommend the Linux Virtual Server for all your load-balancing needs.