Manca il nome host del proxy diretto nella richiesta
Una richiesta HTTP semplice attraverso un proxy diretto identifica la destinazione, quindi Host e il nome host di Express non possono distinguere gli alias del proxy stesso.
Supponiamo che east.proxy.example e west.proxy.example risolvano allo stesso listener HTTP semplice del proxy. Un client che usa l'uno o l'altro nome può inviare:
GET http://www.example.org/report HTTP/1.1
Host: www.example.org
La richiesta identifica il sito web. Non porta l'alias del proxy che il client ha risolto prima di aprire TCP. Il nome host derivato da Host in Express non può quindi scegliere una rotta in base a quei sottodomini del proxy.
Se controllate il client e il proxy, fornite un input di instradamento esplicito. Per un proxy che implementa un'etichetta X-Route:
curl --proxy http://east.proxy.example:8080 \
--proxy-header 'X-Route: east' \
https://www.example.org/
--proxy-header punta alla comunicazione con il proxy, incluso CONNECT. Un'intestazione -H ordinaria sulla richiesta HTTPS appartiene allo scambio HTTP cifrato della destinazione.
Il server deve implementare e autorizzare la politica di instradamento, poi consumare l'etichetta senza inoltrarla al sito web. In alternativa, usate endpoint di ascolto o account proxy configurati separatamente come input di instradamento.
Per le destinazioni HTTPS, Node riceve la richiesta iniziale del tunnel tramite l'evento connect del suo server HTTP. Il middleware di richiesta Express ordinario non gestisce quell'evento. La sua destinazione CONNECT identifica comunque il server di destinazione, non l'alias del proxy.