Bu Haproxy ile mümkündür. Bir TCP proxy kurabilir ve SNI'yi ayıklayabilir ve SNI'yi temel alarak yönlendirme yapabilirsiniz. İşte bir örnek:
backend be.app1
mode tcp
no option checkcache
no option httpclose
tcp-request inspect-delay 5s
tcp-request content accept if { req.ssl_hello_type 1 }
tcp-request content reject
use-server server1 if { req.ssl_sni -m beg app1. }
server server1 server1:8443 check id 1 weight 0
SSL merhaba alıncaya kadar isteği ertelemek önemlidir, aksi takdirde haproxy SNI üstbilgisini almadan önce bir bağlantı kurmaya çalışır.
Geçerli yapılandırmamda, her SNI için çalışan yalnızca bir sunucum olduğu için rasgele istekleri almalarını istemediğim için 0 ağırlığı olan sunucular kullanıyorum. Bununla oynamak için muhtemelen daha iyi yollar bulabilirsiniz.
Umarım bu yardımcı olur.