Cenário B. O HAProxy cria uma conexão TCP com o back-end para enviar a solicitação do cliente, o back-end responde ao HAProxy e, em seguida, o HAProxy envia a solicitação ao cliente. O cliente nunca tem uma conexão TCP com o backend, então não há comunicação direta entre eles.
Also, can this setting works? Internet facing NIC in HAPRoxy is using the public IP where the internal facing NIC for HAProxy use private IP and so does the webserver1 and webserver2. They both use private IP.
Sim, isso pode funcionar.
What kind of load balancing scenario does HAProxy support other than Round Robin? What I'm trying to accomplish is, when client is connected the first time to webserver1, I'd like to keep that connection for that client until the session is expired or terminated. Any suggestion on how to accomplish that?
O que você está procurando é chamado de "sticky sessions", veja esta questão como exemplo.