I need to share ssl termination task among server farm or multiple processes. In this architecture, there should be a load balancer before this ssl termination task. After looking for an appropriate software load balancer a while, it turn out that only layer 4 (TCP) load balancers (haproxy) are suitable for this job rather than layer 7 (HTTP/HTTPS) ones.
My question is, why layer 7 load balancers like nginx, perlbal cannot just pass through ssl termination? Client IP addresses should be available in layer 7 load balancer. They can just forward requests, right?
The architecture is like:
HTTPS balancer (L4/TCP balancer) / | \ <--- HTTPS traffic SSL server farm/processes \ | / <--- HTTP traffic HTTP balancer (L7/HTTP balancer) / | \ HTTP server farm/processes Reference: http://1wt.eu/articles/2006_lb/index_09.html