Predpokladajme, že east.proxy.example a west.proxy.example smerujú k rovnakému jednoduchému HTTP proxy listeneru. Klient používajúci ktorýkoľvek z týchto názvov môže odoslať:

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

Požiadavka určuje web. Nenesie však alias proxy, ktorý klient preložil pred otvorením TCP. Hostname v Expresse odvodený z hlavičky Host preto nemôže vybrať trasu na základe týchto subdomén proxy.

Ak ovládate klienta aj proxy, zabezpečte explicitný vstup pre smerovanie. Pre proxy, ktoré implementuje štítok X-Route:

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

--proxy-header cieli na komunikáciu s proxy, vrátane CONNECT. Bežná hlavička -H v HTTPS požiadavke patrí dovnútra šifrovanej HTTP výmeny s cieľom.

Server musí politiku smerovania implementovať a autorizovať, potom štítok spotrebovať bez toho, aby ho odovzdal webu. Alternatívne použite samostatne nakonfigurované naslúchacie koncové body alebo účty proxy ako vstupy smerovania.

Pri cieľoch HTTPS dostáva Node počiatočnú tunelovú požiadavku cez udalosť connect svojho HTTP servera. Bežný middleware požiadaviek Expressu túto udalosť neobsluhuje. Cieľ CONNECT stále určuje cieľový server, nie alias proxy.

Súvisiace články