สมมติว่า east.proxy.example และ west.proxy.example ชี้ไปยังตัวรับฟังพร็อกซี่ HTTP ธรรมดาตัวเดียวกัน ไคลเอนต์ที่ใช้ชื่อใดชื่อหนึ่งสามารถส่ง:

GET http://www.example.org/report HTTP/1.1
Host: www.example.org

คำขอระบุเว็บไซต์ ไม่ได้นำชื่อพร็อกซี่ที่ไคลเอนต์แปลงก่อนเปิด TCP มาด้วย ดังนั้นชื่อโฮสต์ของ Express ที่ได้จาก Host จึงเลือกเส้นทางตามซับโดเมนของพร็อกซี่เหล่านั้นไม่ได้

หากคุณควบคุมไคลเอนต์และพร็อกซี่ ให้ระบุอินพุตการกำหนดเส้นทางอย่างชัดเจน สำหรับพร็อกซี่ที่ใช้ป้ายกำกับ X-Route:

curl --proxy http://east.proxy.example:8080 \
  --proxy-header 'X-Route: east' \
  https://www.example.org/

--proxy-header มุ่งเป้าการสื่อสารกับพร็อกซี่ รวมถึง CONNECT ส่วนหัว -H ปกติบนคำขอ HTTPS อยู่ภายในธุรกรรม HTTP ที่เข้ารหัสของปลายทาง

เซิร์ฟเวอร์ต้องนำนโยบายการกำหนดเส้นทางไปใช้และอนุญาต จากนั้นใช้ป้ายกำกับโดยไม่ส่งต่อไปยังเว็บไซต์ หรือใช้ปลายทางการรับฟังหรือบัญชีพร็อกซี่ที่กำหนดค่าแยกไว้เป็นอินพุตการกำหนดเส้นทาง

สำหรับปลายทาง HTTPS Node จะได้รับคำขออุโมงค์เริ่มต้นผ่านเหตุการณ์ connect ของเซิร์ฟเวอร์ HTTP มิดเดิลแวร์คำขอ Express ทั่วไปไม่จัดการเหตุการณ์นั้น เป้าหมาย CONNECT ยังคงระบุเซิร์ฟเวอร์ปลายทาง ไม่ใช่ชื่อพร็อกซี่

บทความที่เกี่ยวข้อง