Let the load balancer pass SSL/TLS-encrypted data through to the servers. I wonder how a hanshake is processed if a new HTTPS connection to a client is established: Handshaking is a stateful communication. For instance, in order to verify the client's finished message, the server needs to know all handshake messages that has been exchanged between server (farm) and client so far. Hence, - as far as I can see - there are three possibilities:
SSL/TLS data are hold in a cache that is shared by all servers
The content of the handshake messages is replicated to all servers.
The load balancer directs all handshake messages from the client to the same server.
Question: Which scenario is typically used in such an environment ? Are there further policies in handling handshakes that I missed ?
Added: I'm faced with the claim that my question is a duplicate and I'm told to edit my question in order to explain why it is different from Load balancing and HTTPS strategies. So here is my comparison between my question and the other question:
a) I figured out three options to handle https state in an load balancing environment and asked which of these (or maybe other ones) are used in practise.
b) In the other question the OP uses option 3 ("same server"), i.e. all requests with same IP are routed to the same server. However, since most of their clients use the same IP lb doesn't work well and OP asks for a way out. Four and a half out of five answers give suggestions that, in effect, keep option 3 above. One part of an answer there ("DNS for target server"), I didn't understand.
So the question is still, if the options 1 ("ssl cache") and 2 ("replication of ssl hanshake data") are in used in practise. The article http://wtarreau.blogspot.de/2006/11/making-applications-scalable-with-load.html seems to favor option 1 (see "4. Dedicated SSL-Cache Farm").