Předpokládejme, že east.proxy.example a west.proxy.example se překládají na stejný obyčejný HTTP posluchač proxy. Klient používající kterékoli z těchto jmen může odeslat:

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

Požadavek identifikuje web. Nenese však alias proxy, který klient přeložil před otevřením TCP. Hostname odvozený z Host v Expressu proto nemůže vybrat trasu na základě těchto subdomén proxy.

Pokud ovládáte klienta i proxy, zajistěte explicitní vstup pro směrování. Pro proxy, která implementuje štítek X-Route:

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

--proxy-header cílí komunikaci s proxy, včetně CONNECT. Obyčejná hlavička -H v HTTPS požadavku patří dovnitř šifrované HTTP výměny s cílem.

Server musí směrovací politiku implementovat a autorizovat a poté štítek spotřebovat, aniž by jej předal webu. Alternativně použijte samostatně nakonfigurované koncové body pro naslouchání nebo účty proxy jako vstupy pro směrování.

Pro cíle HTTPS přijímá Node počáteční požadavek tunelu prostřednictvím události connect svého HTTP serveru. Běžný middleware požadavků Express tuto událost neobsluhuje. Jeho cíl CONNECT stále identifikuje cílový server, nikoli alias proxy.

Související články