Come configurare un proxy in Node.js (Axios e Native Fetch)
Aggiornato:
La configurazione nativa di Axios proxy: { host, port } non funziona sulle destinazioni https:// poiché non stabilisce il tunnel HTTP CONNECT. Per instradare le richieste Node.js e TypeScript attraverso i proxy HTTP(S) autenticati di VinaProxy, passa un HttpsProxyAgent (https-proxy-agent) ad Axios oppure un dispatcher undici.ProxyAgent al metodo nativo fetch() di Node.
new HttpsProxyAgent('http://user:pass@ip:port')- 1 IP40.000 VND
- 5+ IP35.000 VND
- 10+ IP25.000 VND
- 20+ IP25.000 VND
- 50+ IP25.000 VND
- 100+ IP25.000 VND
- 200+ IP25.000 VND
- 500+ IP25.000 VND
- 1000+ IP22.000 VND
- 2000+ IP20.000 VND
- 1 IP40.000 VND
- 5+ IP35.000 VND
- 10+ IP25.000 VND
- 20+ IP25.000 VND
- 50+ IP25.000 VND
- 100+ IP25.000 VND
- 200+ IP25.000 VND
- 500+ IP25.000 VND
- 1000+ IP22.000 VND
- 2000+ IP20.000 VND
Confronto configurazione proxy: Axios vs. fetch() nativa in Node.js
Entrambe le librerie supportano gli URL standard http://user:pass@ip:port ricavati dalla dashboard di VinaProxy:
| Client HTTP | Pacchetto NPM | Snippet di codice consigliato |
|---|---|---|
| Axios | npm i https-proxy-agent | axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false }) |
Nativo fetch (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' }) } }) |
Gestione del pool di connessioni e timeout in Node.js
- Imposta sempre
proxy: falseinsieme ahttpsAgentin Axios, così da ignorare la variabile d'ambiente di sistemaHTTP_PROXY - Istanzia
HttpsProxyAgentoProxyAgentuna volta sola per singolo IP al di fuori dei cicli, riutilizzando i socket TCP keep-alive persistenti - Esporta direttamente la lista proxy VinaProxy come array JSON attraverso il nostro Convertitore di formato proxy
Passo dopo passo
- 1
Installa https-proxy-agent (o undici)
Esegui
npm install axios https-proxy-agentall'interno della cartella del progetto Node.js. - 2
Crea l'istanza HttpsProxyAgent
Inizializza
const agent = new HttpsProxyAgent('http://user:pass@ip:port');con le credenziali fornite da VinaProxy. - 3
Passa httpsAgent e proxy: false ad Axios
Invoca
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Verifica l'indirizzo IP in uscita
Stampa
res.dataper appurare che la richiesta sia transitata dall'IP statico dedicato.
Domande frequenti
Perché la configurazione predefinita proxy: { host, port, auth } di Axios fallisce con URL HTTPS?
Axios invia una richiesta HTTP in chiaro invece di negoziare un tunnel TLS tramite HTTP CONNECT. L'assegnazione di httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') congiuntamente a proxy: false risolve il problema.
Come si imposta un proxy nella funzione fetch() nativa di Node.js 18/20/22?
Importa ProxyAgent da undici e fornisci { dispatcher: new ProxyAgent('http://user:pass@ip:port') } nell'oggetto opzioni di fetch().
Posso convertire l'elenco proxy in formato JSON per Node.js?
Sì. Incolla le credenziali ip:port:user:pass nel nostro Convertitore di formato proxy gratuito e scarica l'output in JSON.
Alimenta backend e spider Node.js con IP statici dedicati
Proxy IPv4 Dedicati e ISP Statici illimitati ad attivazione istantanea in 7 paesi del mondo.
Acquista proxy Node.js