ఫార్వర్డ్ ప్రాక్సీ యొక్క హోస్ట్నేమ్ అభ్యర్థనలో లేదు
సాధారణ HTTP ఫార్వర్డ్-ప్రాక్సీ అభ్యర్థన గమ్యాన్ని గుర్తిస్తుంది, కాబట్టి Host మరియు Express హోస్ట్నేమ్ ప్రాక్సీ యొక్క స్వంత మారుపేర్లను వేరు చేయలేవు.
east.proxy.example మరియు west.proxy.example ఒకే సాధారణ HTTP ప్రాక్సీ శ్రోతకు చేరుతాయని అనుకుందాం. ఏ పేరు ఉపయోగించినా క్లయింట్ పంపవచ్చు:
GET http://www.example.org/report HTTP/1.1
Host: www.example.orgఅభ్యర్థన వెబ్సైట్ను గుర్తిస్తుంది. TCP తెరిచే ముందు క్లయింట్ పరిష్కరించిన ప్రాక్సీ మారుపేరును ఇది తీసుకువెళ్లదు. కాబట్టి Host నుండి పొందిన Express హోస్ట్నేమ్ ఆ ప్రాక్సీ సబ్డొమైన్ల ఆధారంగా మార్గాన్ని ఎంచుకోలేదు.
మీరు క్లయింట్ మరియు ప్రాక్సీని నియంత్రిస్తే, స్పష్టమైన రూటింగ్ ఇన్పుట్ ఇవ్వండి. 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 లక్ష్యం ఇప్పటికీ గమ్య సర్వర్ను గుర్తిస్తుంది, ప్రాక్సీ మారుపేరును కాదు.