Ime hosta naprijed-proxyja nedostaje u zahtjevu
Običan HTTP zahtjev kroz naprijed-proxy identifikuje odredište, pa Host i Express hostname ne mogu razlikovati alias-e samog proxyja.
Pretpostavimo da se east.proxy.example i west.proxy.example razrješavaju na isti obični HTTP proxy listener. Klijent koji koristi bilo koje ime može poslati:
GET http://www.example.org/report HTTP/1.1
Host: www.example.org
Zahtjev identifikuje web stranicu. On ne nosi alias proxyja koji je klijent razriješio prije otvaranja TCP-a. Hostname izveden iz Host-a u Expressu stoga ne može odabrati rutu na osnovu tih proxy poddomena.
Ako kontrolišete klijenta i proxy, obezbijedite eksplicitan ulaz za rutiranje. Za proxy koji implementira oznaku X-Route:
curl --proxy http://east.proxy.example:8080 \
--proxy-header 'X-Route: east' \
https://www.example.org/
--proxy-header cilja komunikaciju sa proxyjem, uključujući CONNECT. Običan -H zaglavlje na HTTPS zahtjevu pripada unutar šifrovane HTTP razmjene odredišta.
Server mora implementirati i odobriti politiku rutiranja, a zatim iskoristiti oznaku bez prosljeđivanja web stranici. Alternativno, koristite zasebno konfigurisane krajnje tačke za slušanje ili proxy račune kao ulaze za rutiranje.
Za HTTPS odredišta Node prima početni zahtjev tunela kroz connect događaj svog HTTP servera. Obični Express middleware za zahtjeve ne obrađuje taj događaj. Njegov CONNECT cilj i dalje identifikuje odredišni server, a ne alias proxyja.