Ako nastaviť proxy v Node.js (Axios a natívny Fetch)
Updated:
Vstavaná voľba proxy: { host, port } v Axios zlyháva pri cieľoch https://, pretože nevytvára tunel HTTP CONNECT. Ak chcete požiadavky v Node.js a TypeScript bezproblémovo smerovať cez overené HTTP(S) proxy od VinaProxy, odovzdajte knižnici Axios HttpsProxyAgent (https-proxy-agent) alebo natívnemu volaniu fetch() v Node dispatcher undici.ProxyAgent.
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
Konfigurácia proxy: Axios vs. natívny Node.js fetch()
Obe knižnice prijímajú štandardné adresy URL v tvare http://user:pass@ip:port z vášho ovládacieho panelu VinaProxy:
| HTTP klient | Balík | Odporúčaný fragment kódu |
|---|---|---|
| Axios | npm i https-proxy-agent | axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false }) |
Native 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' }) } }) |
Osvedčené postupy pre connection pooling a timeout v Node.js
- V Axios vždy nastavte
proxy: falsepoprihttpsAgent, aby Axios ignoroval konfliktné systémové premenné prostrediaHTTP_PROXY - Inštanciu
HttpsProxyAgentaleboProxyAgentvytvorte pre každú proxy IP iba raz mimo cyklu, aby ste opätovne využívali trvalé keep-alive sockety - Exportujte zoznam proxy VinaProxy priamo ako pole JSON pomocou nášho nástroja Proxy Format Converter
Krok za krokom
- 1
Nainštalujte https-proxy-agent (alebo undici)
Vo svojom projekte Node.js spustite
npm install axios https-proxy-agent. - 2
Vytvorte inštanciu HttpsProxyAgent
Inicializujte
const agent = new HttpsProxyAgent('http://user:pass@ip:port');pomocou svojich prihlasovacích údajov VinaProxy. - 3
Odovzdajte httpsAgent a proxy: false do Axios
Zavolajte
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Overte výstupnú IP adresu
Vypíšte
res.datado konzoly a overte, že odpoveď prešla cez vašu dedikovanú proxy IP.
Často kladené otázky
Prečo predvolené nastavenie `proxy: { host, port, auth }` v Axios zlyháva na HTTPS adresách URL?
Vstavaná konfigurácia proxy v Axios odosiela obyčajnú HTTP požiadavku namiesto vytvorenia TLS tunela HTTP CONNECT. Riešením je použitie httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') spolu s proxy: false.
Ako použiť proxy s natívnym `fetch()` v Node.js 18/20/22?
Importujte ProxyAgent z knižnice undici a v objekte možností fetch() odovzdajte { dispatcher: new ProxyAgent('http://user:pass@ip:port') }.
Môžem svoj zoznam proxy previesť do formátu JSON pre Node.js?
Áno – vložte riadky v tvare ip:port:user:pass do nášho bezplatného nástroja Proxy Format Converter a vyberte výstup JSON.
Zrýchlite svoje backendy a scrapery v Node.js statickými IP
Okamžité neobmedzené dedikované IPv4 a statické ISP proxy v 7 krajinách.
Kúpiť Node.js proxy