Proxy inverso en HTTPS
Usar HAProxy hace que esto sea extremadamente fácil. No hay necesidad de hacer extrañas reglas de reescritura o así.
Sólo tienes que crear una sesión HTTPS frontend, bind al puerto 443/TCP y añadir los diferentes servidores que va a golpear por FQDN. HAProxy reenviará incluso el handshake SSL al servidor asignado.
frontend https-frontend
bind *:443
option tcplog
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if { req.ssl_hello_type 1 }
acl service_1 req.ssl_sni -i service_1.fqdn
acl service_2 req.ssl_sni -i service_2.fqdn
use_backend backend_1 if service_1
use_backend backend_2 if service_2
default_backend backend_default
backend backend_default
mode tcp
server srv_default 127.0.0.1:443
backend backend_1
mode tcp
server srv_service_1 192.168.1.1:443
backend backend_2
mode tcp
server srv_service_2 192.168.1.2:443