Cum să configurezi un proxy în Node.js (Axios și fetch nativ)
Updated:
Opțiunea integrată proxy: { host, port } din Axios eșuează pe ținte https:// deoarece nu inițiază un tunel HTTP CONNECT. Pentru a ruta corect cererile din Node.js și TypeScript prin proxy-uri HTTP(S) cu autentificare de la VinaProxy, transmite un HttpsProxyAgent (https-proxy-agent) către Axios sau un dispatcher undici.ProxyAgent către fetch() nativ din Node.
new HttpsProxyAgent('http://user:pass@ip:port')- 1 IP40.000 VND
- 5+ IP-uri35.000 VND
- 10+ IP-uri25.000 VND
- 20+ IP-uri25.000 VND
- 50+ IP-uri25.000 VND
- 100+ IP-uri25.000 VND
- 200+ IP-uri25.000 VND
- 500+ IP-uri25.000 VND
- 1000+ IP-uri22.000 VND
- 2000+ IP-uri20.000 VND
- 1 IP40.000 VND
- 5+ IP-uri35.000 VND
- 10+ IP-uri25.000 VND
- 20+ IP-uri25.000 VND
- 50+ IP-uri25.000 VND
- 100+ IP-uri25.000 VND
- 200+ IP-uri25.000 VND
- 500+ IP-uri25.000 VND
- 1000+ IP-uri22.000 VND
- 2000+ IP-uri20.000 VND
Configurarea proxy-ului: Axios vs. fetch() nativ în Node.js
Ambele biblioteci acceptă URL-uri standard http://user:pass@ip:port din tabloul tău de bord VinaProxy:
| Client HTTP | Pachet | Snippet de cod recomandat |
|---|---|---|
| Axios | npm i https-proxy-agent | axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false }) |
fetch nativ (Node 18+) | npm i undici | fetch(url, { dispatcher: new ProxyAgent('http://user:pass@ip:port') }) |
| Got | npm i hpagent | got(url, { agent: { https: new HttpsProxyAgent({ proxy: 'http://user:pass@ip:port' }) } }) |
Bune practici pentru connection pooling și timeout în Node.js
- Setează întotdeauna
proxy: falsealături dehttpsAgentîn Axios, astfel încât Axios să ignore variabilele de mediuHTTP_PROXYconflictuale din sistem - Instanțiază
HttpsProxyAgentsauProxyAgento singură dată per IP proxy în afara buclei, pentru a reutiliza conexiunile persistente keep-alive - Exportă lista ta de proxy-uri VinaProxy direct ca array JSON folosind Proxy Format Converter
Pas cu pas
- 1
Instalează https-proxy-agent (sau undici)
Rulează
npm install axios https-proxy-agentîn proiectul tău Node.js. - 2
Creează instanța HttpsProxyAgent
Inițializează
const agent = new HttpsProxyAgent('http://user:pass@ip:port');folosind datele tale de autentificare VinaProxy. - 3
Transmite httpsAgent și proxy: false către Axios
Apelează
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Verifică IP-ul de ieșire
Afișează
res.datapentru a confirma că răspunsul a venit prin IP-ul tău proxy dedicat.
Întrebări frecvente
De ce eșuează configurarea implicită `proxy: { host, port, auth }` din Axios pe URL-uri HTTPS?
Configurația proxy integrată din Axios trimite o cerere HTTP simplă în loc să deschidă un tunel TLS HTTP CONNECT. Utilizarea httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') cu proxy: false rezolvă această problemă.
Cum folosesc un proxy cu `fetch()` nativ în Node.js 18/20/22?
Importă ProxyAgent din undici și transmite { dispatcher: new ProxyAgent('http://user:pass@ip:port') } în obiectul de opțiuni din fetch().
Pot converti lista mea de proxy-uri în JSON pentru Node.js?
Da — lipește liniile tale ip:port:user:pass în instrumentul nostru gratuit Proxy Format Converter și selectează formatul JSON.
Accelerează backend-urile și scraper-ele Node.js cu IP-uri statice
Proxy-uri dedicate IPv4 și ISP statice, nelimitate și instantanee, în 7 țări.
Cumpără proxy-uri Node.js