Comment configurer un proxy dans Node.js (Axios et Native Fetch)
Mis à jour:
L'option native d'Axios proxy: { host, port } échoue sur les cibles https:// car elle ne crée pas de tunnel de chiffrement HTTP CONNECT. Pour router les requêtes Node.js et TypeScript via les proxys HTTP(S) sécurisés de VinaProxy, transmettez un HttpsProxyAgent (https-proxy-agent) à Axios ou un répartiteur undici.ProxyAgent au fetch() natif de Node.
new HttpsProxyAgent('http://user:pass@ip:port')- 1 IP40 000 ₫
- 5+ IPs35 000 ₫
- 10+ IPs25 000 ₫
- 20+ IPs25 000 ₫
- 50+ IPs25 000 ₫
- 100+ IPs25 000 ₫
- 200+ IPs25 000 ₫
- 500+ IPs25 000 ₫
- 1000+ IPs22 000 ₫
- 2000+ IPs20 000 ₫
- 1 IP40 000 ₫
- 5+ IPs35 000 ₫
- 10+ IPs25 000 ₫
- 20+ IPs25 000 ₫
- 50+ IPs25 000 ₫
- 100+ IPs25 000 ₫
- 200+ IPs25 000 ₫
- 500+ IPs25 000 ₫
- 1000+ IPs22 000 ₫
- 2000+ IPs20 000 ₫
Comparatif de configuration proxy entre Axios et le fetch() natif
Les deux bibliothèques acceptent les URL classiques au format http://user:pass@ip:port générées sur l'espace client VinaProxy :
| Client HTTP | Paquet NPM | Exemple de code recommandé |
|---|---|---|
| Axios | npm i https-proxy-agent | axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false }) |
Natif 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' }) } }) |
Mutualisation de connexions et gestion des délais d'attente sous Node.js
- Définissez systématiquement
proxy: falseen même temps quehttpsAgentdans Axios afin de bloquer toute interférence avec la variable systèmeHTTP_PROXY - Instanciez
HttpsProxyAgentouProxyAgentune unique fois par adresse IP en dehors de vos boucles de traitement pour réutiliser les sockets persistants TCP keep-alive - Exportez vos identifiants VinaProxy directement sous forme de tableau JSON à l'aide de notre Convertisseur de format proxy
Étape par étape
- 1
Installer https-proxy-agent (ou undici)
Exécutez
npm install axios https-proxy-agentau sein de votre projet Node.js. - 2
Créer l'instance HttpsProxyAgent
Initialisez
const agent = new HttpsProxyAgent('http://user:pass@ip:port');avec vos accès VinaProxy. - 3
Transmettre httpsAgent et proxy: false à Axios
Appelez
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Contrôler l'adresse IP de sortie
Affichez
res.datapour vous assurer que la réponse a bien transité par l'IP proxy dédiée.
Questions fréquentes
Pourquoi la configuration standard proxy: { host, port, auth } d'Axios échoue-t-elle sur les URL HTTPS ?
La configuration par défaut d'Axios émet une simple requête HTTP au lieu de négocier un tunnel TLS via HTTP CONNECT. L'utilisation conjointe de httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') et de proxy: false corrige cette anomalie.
Comment utiliser un proxy avec le fetch() natif de Node.js 18/20/22 ?
Importez la classe ProxyAgent du paquet undici et transmettez { dispatcher: new ProxyAgent('http://user:pass@ip:port') } dans les options de la méthode fetch().
Est-il possible de convertir mes proxys en format JSON pour Node.js ?
Oui. Copiez vos lignes ip:port:user:pass dans notre Convertisseur de format proxy gratuit et choisissez la restitution au format JSON.
Alimentez vos architectures et scrapers Node.js avec des IP statiques dédiées
Proxies IPv4 Dédiés et ISP Statiques sans quota avec disponibilité immédiate dans 7 pays.
Acheter des proxys Node.js