Ենթադրենք, որ east.proxy.example-ը և west.proxy.example-ը լուծվում են դեպի պրոքսիի նույն սովորական HTTP լսիչը։ Այս անուններից որևէ մեկն օգտագործող հաճախորդը կարող է ուղարկել՝

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

Հարցումը նույնականացնում է կայքը։ Այն չի կրում այն պրոքսիի կեղծանունը, որը հաճախորդը լուծել էր TCP-ն բացելուց առաջ։ Հետևաբար Express-ի՝ Host-ից ստացված hostname-ը չի կարող երթուղի ընտրել այդ պրոքսի ենթադոմեյնների հիման վրա։

Եթե վերահսկում եք հաճախորդին և պրոքսին, ապա տրամադրեք երթուղավորման բացահայտ մուտք։ X-Route պիտակը ներդնող պրոքսիի համար՝

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

--proxy-header-ը ուղղված է պրոքսիի հետ հաղորդակցությանը, ներառյալ CONNECT-ը։ HTTPS հարցման վրա սովորական -H վերնագիրը պատկանում է նպատակակետի գաղտնագրված HTTP փոխանակությանը։

Սերվերը պետք է ներդնի և թույլատրի երթուղավորման քաղաքականությունը, ապա օգտագործի պիտակը՝ առանց այն կայքին փոխանցելու։ Այլընտրանքորեն, որպես երթուղավորման մուտք օգտագործեք առանձին կարգավորված լսման վերջնակետեր կամ պրոքսի հաշիվներ։

HTTPS նպատակակետերի համար Node-ը նախնական թունելային հարցումը ստանում է իր HTTP սերվերի connect իրադարձության միջոցով։ Սովորական Express հարցումների միջնորդ ծրագիրը չի մշակում այդ իրադարձությունը։ Նրա CONNECT թիրախը դեռևս նույնականացնում է նպատակակետ սերվերը, ոչ թե պրոքսիի կեղծանունը։

Առնչվող հոդվածներ