Cara mengatur proxy di Node.js (Axios & Native Fetch)
Diperbarui:
Opsi bawaan Axios proxy: { host, port } akan mengalami kegagalan saat mengakses target https:// karena opsi tersebut tidak membuka terowongan HTTP CONNECT. Agar request Node.js dan TypeScript Anda terhubung secara stabil melalui proxy HTTP(S) terotentikasi VinaProxy, gunakan HttpsProxyAgent (https-proxy-agent) pada Axios atau dispatcher undici.ProxyAgent pada fungsi native fetch() Node.
new HttpsProxyAgent('http://user:pass@ip:port')- 1 IP₫40.000
- 5+ IP₫35.000
- 10+ IP₫25.000
- 20+ IP₫25.000
- 50+ IP₫25.000
- 100+ IP₫25.000
- 200+ IP₫25.000
- 500+ IP₫25.000
- 1000+ IP₫22.000
- 2000+ IP₫20.000
- 1 IP₫40.000
- 5+ IP₫35.000
- 10+ IP₫25.000
- 20+ IP₫25.000
- 50+ IP₫25.000
- 100+ IP₫25.000
- 200+ IP₫25.000
- 500+ IP₫25.000
- 1000+ IP₫22.000
- 2000+ IP₫20.000
Perbandingan konfigurasi proxy Axios vs. fetch() native Node.js
Kedua pustaka dapat langsung menerima URL standar berformat http://user:pass@ip:port dari dashboard VinaProxy Anda:
| Klien HTTP | Paket NPM | Contoh Kode Rekomendasi |
|---|---|---|
| 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' }) } }) |
Praktik terbaik connection pooling dan timeout di Node.js
- Selalu sertakan
proxy: falsedi sampinghttpsAgentpada Axios agar mengabaikan variabel lingkunganHTTP_PROXYsistem yang mungkin berkonflik - Buat instance
HttpsProxyAgentatauProxyAgentsatu kali per IP proxy di luar perulangan (loop) untuk menggunakan ulang soket TCP keep-alive persisten - Ekspor daftar proxy VinaProxy Anda menjadi array JSON siap pakai menggunakan Alat Konversi Format Proxy kami
Langkah demi langkah
- 1
Instal https-proxy-agent (atau undici)
Jalankan perintah
npm install axios https-proxy-agentdi direktori proyek Node.js Anda. - 2
Buat instance HttpsProxyAgent
Inisialisasi objek
const agent = new HttpsProxyAgent('http://user:pass@ip:port');dengan kredensial VinaProxy Anda. - 3
Kirimkan httpsAgent dan proxy: false ke Axios
Panggil
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Periksa IP keluar
Cetak
res.datauntuk mengonfirmasi bahwa data berhasil dikirim melalui IP proxy dedicated Anda.
Pertanyaan umum
Mengapa konfigurasi bawaan Axios proxy: { host, port, auth } gagal pada URL HTTPS?
Konfigurasi default Axios mengirimkan permintaan HTTP biasa alih-alih membuka terowongan TLS HTTP CONNECT. Menggunakan httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') bersama dengan proxy: false akan menyelesaikan masalah ini.
Bagaimana cara menggunakan proxy dengan native fetch() di Node.js 18/20/22?
Impor ProxyAgent dari undici lalu teruskan { dispatcher: new ProxyAgent('http://user:pass@ip:port') } ke dalam objek opsi pemanggilan fetch().
Bisakah saya mengubah daftar proxy menjadi format JSON untuk Node.js?
Bisa. Tempel baris ip:port:user:pass ke dalam Alat Konversi Format Proxy gratis kami dan pilih keluaran berformat JSON.
Tingkatkan backend dan scraper Node.js Anda dengan IP statis dedicated
Proxy IPv4 Dedicated dan ISP Statis tanpa batas kuota di 7 negara dengan pengiriman instan.
Beli Proxy Node.js