Jak nastavit proxy v Node.js (Axios a nativní fetch)
Updated:
Výchozí volba proxy: { host, port } v knihovně Axios selhává u cílů s https://, protože nevytváří tunel HTTP CONNECT. Chcete-li požadavky z Node.js a TypeScriptu spolehlivě směrovat přes ověřené HTTP(S) proxy od VinaProxy, předejte do knihovny Axios agenta HttpsProxyAgent (https-proxy-agent) nebo dispatcher undici.ProxyAgent do nativního Node fetch().
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
Konfigurace proxy: Axios vs. nativní fetch() v Node.js
Obě knihovny přijímají standardní adresy URL ve tvaru http://user:pass@ip:port z vašeho dashboardu VinaProxy:
| HTTP klient | Balíček | Doporučená ukázka kódu |
|---|---|---|
| Axios | npm i https-proxy-agent | axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false }) |
Nativní 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' }) } }) |
Osvědčené postupy pro connection pooling a timeouty v Node.js
- V knihovně Axios vždy nastavte
proxy: falsespolečně shttpsAgent, aby Axios ignoroval konfliktní systémové proměnné prostředíHTTP_PROXY - Vytvářejte instanci
HttpsProxyAgentneboProxyAgentpro každou IP adresu proxy pouze jednou mimo smyčku, abyste znovu využívali trvalá keep-alive spojení - Exportujte svůj seznam proxy od VinaProxy přímo jako pole JSON pomocí našeho nástroje Proxy Format Converter
Krok za krokem
- 1
Nainstalujte https-proxy-agent (nebo undici)
Ve svém projektu Node.js spusťte
npm install axios https-proxy-agent. - 2
Vytvořte instanci HttpsProxyAgent
Inicializujte
const agent = new HttpsProxyAgent('http://user:pass@ip:port');pomocí svých přihlašovacích údajů k VinaProxy. - 3
Předejte httpsAgent a proxy: false do Axiosu
Zavolejte
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Ověřte výstupní IP adresu
Vypište
res.datado logu a ověřte, že odpověď prošla přes vaši dedikovanou IP adresu proxy.
Často kladené otázky
Proč výchozí `proxy: { host, port, auth }` v knihovně Axios selhává na HTTPS URL?
Výchozí konfigurace proxy v knihovně Axios odesílá prostý HTTP požadavek místo otevření TLS tunelu pomocí HTTP CONNECT. Použití httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') spolu s proxy: false tento problém řeší.
Jak použít proxy s nativním `fetch()` v Node.js 18/20/22?
Importujte ProxyAgent z balíčku undici a předejte { dispatcher: new ProxyAgent('http://user:pass@ip:port') } v objektu s možnostmi pro fetch().
Lze převést seznam proxy do JSONu pro Node.js?
Ano – vložte své řádky ip:port:user:pass do našeho bezplatného nástroje Proxy Format Converter a vyberte výstup JSON.
Dodejte svým backendům a scraperům v Node.js výkon se statickými IP adresami
Okamžité neomezené dedikované IPv4 a statické ISP proxy v 7 zemích.
Koupit proxy pro Node.js