สิ่งนี้เป็นไปได้ด้วย Haproxy คุณสามารถตั้งค่าพร็อกซี TCP และแยก SNI และทำการกำหนดเส้นทางตาม SNI นี่คือตัวอย่าง:
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 hello มิฉะนั้น haproxy จะพยายามทำการเชื่อมต่อก่อนที่จะรับส่วนหัว SNI
ฉันกำลังใช้เซิร์ฟเวอร์ที่มีน้ำหนัก 0 เพราะในการกำหนดค่าปัจจุบันของฉันฉันมีเซิร์ฟเวอร์เดียวที่ทำงานสำหรับแต่ละ SNI และฉันไม่ต้องการให้พวกเขาได้รับคำขอแบบสุ่ม คุณอาจหาวิธีที่ดีกว่าในการเล่นกับสิ่งนี้
ฉันหวังว่านี่จะช่วยได้.