ชื่อโฮสต์ของพร็อกซี่ส่งต่อหายไปจากคำขอ
คำขอพร็อกซี่ HTTP แบบส่งต่อทั่วไประบุปลายทาง ดังนั้น Host และชื่อโฮสต์ของ Express จึงไม่สามารถแยกแยะชื่ออื่นของพร็อกซี่เองได้
สมมติว่า 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 ยังคงระบุเซิร์ฟเวอร์ปลายทาง ไม่ใช่ชื่อพร็อกซี่