Cara Menyiapkan Axios Proxy untuk Node.js (Ya, Termasuk HTTPS)

Terakhir diperbarui pada August 11, 2026
Axios request travelling through a CONNECT proxy tunnel to an HTTPS origin
Ringkasan AI
  • Menyiapkan proxy Axios di Node.js dengan konfigurasi proxy eksplisit, environment variables, dan custom HTTP/HTTPS agent untuk kasus yang tidak ditangani otomatis oleh Axios.
  • Memahami HTTPS CONNECT tunneling, perbedaan antara URL proxy dan URL target, serta alasan SOCKS proxy memerlukan agent, bukan opsi proxy standar.
  • Menerapkan proxy pool dengan retry terbatas, pemilihan round-robin, health scoring, cooldown, dan timeout per request tanpa memicu retry storm.
  • Mendiagnosis masalah ECONNRESET, ETIMEDOUT, 407, TLS, DNS, dan prioritas environment menggunakan pengecekan terarah di lapisan transport, proxy, dan origin.
  • Menjaga kredensial tetap di luar source code dan memastikan routing proxy yang wajib dipakai gagal dengan aman di production automation.

Di suatu sudut Stack Overflow saat ini, ada orang yang yakin bahwa Axios “diam-diam rusak” kalau dipakai dengan HTTPS proxy. Klaim seperti ini memang sering muncul di tutorial proxy Node.js, tapi itu tidak mewakili rilis terbaru yang diuji untuk panduan ini. Saya menyiapkan rig uji lokal dengan origin HTTP dan HTTPS asli di belakang dua proxy, dan Axios 1.19.0 berhasil meneruskan request HTTPS lewat CONNECT request yang benar, bukan sekadar melewati proxy begitu saja.

Itu bukan berarti keluhan yang beredar sepenuhnya salah. Versi Axios lama memang punya bug yang nyata (lihat issue #3384 dan issue #4531 sebagai buktinya), dan rilis Node terbaru menambahkan jalur proxy berbasis environment yang juga perlu dikonfigurasi dengan hati-hati. Panduan ini akan membahas apa yang benar-benar bekerja di Axios 1.19.0 saat ini, semua cara menyambungkan proxy ke request Anda, pola rotasi dengan interceptor yang hampir tidak pernah dibahas tutorial lain, dan tabel lengkap error-ke-solusi saat semuanya tetap bermasalah.

Apa Itu Axios Proxy (dan Kenapa Penting di Node.js)?

Dalam konteks Axios, proxy adalah server perantara yang berada di antara proses Node Anda dan situs tujuan. Request dikirim ke proxy dulu, lalu proxy meneruskannya, dan situs tujuan akan melihat alamat IP proxy, bukan IP Anda. Sederhana, tapi efeknya besar.

Developer biasanya memakai ini untuk beberapa alasan: scraping situs yang membatasi request atau memblokir berdasarkan IP, menguji perilaku aplikasi dari wilayah berbeda, mengarahkan traffic lewat titik keluar perusahaan, atau sekadar menyembunyikan IP server sendiri dari log akses target. Konfigurasi request resmi Axios menyediakan opsi proxy bawaan dengan field host, port, protocol, dan auth — fitur ini sudah ada sejak lama, dan itulah hal pertama yang ditunjukkan hampir semua tutorial (termasuk panduan ini).

Bagian yang sering terlewat adalah: opsi proxy itu berperilaku berbeda tergantung Anda mengakses target HTTP atau HTTPS, dan juga tergantung versi Axios yang dipakai. Perbedaan inilah alasan panduan ini dibuat.

Menyiapkan Node.js dan Axios (Baseline Cepat)

Lewati bagian ini kalau proyek Anda sudah siap. Kalau belum, butuh sekitar dua menit saja.

mkdir axios-proxy-demo && cd axios-proxy-demo
npm init -y
npm install axios

Tambahkan "type": "module" ke package.json kalau Anda ingin memakai import ESM (saya iya — require() CommonJS untuk demo proxy terasa agak jadul). Node LTS saat ini adalah v24.18.0, meskipun saya menjalankan pengujian pada v22.22.3 agar hasilnya tidak bergantung pada keanehan runtime terbaru.

Masukkan ini ke app.js lalu jalankan node app.js:

import axios from 'axios';

const res = await axios.get('https://httpbin.org/ip');
console.log(res.data);

Anda seharusnya melihat alamat IP asli Anda di response. Itu baseline Anda — begitu proxy aktif, request yang sama seharusnya menampilkan IP proxy.

Simpan response ini sebelum mengaktifkan proxy; ini memberi baseline yang jelas untuk dibandingkan dengan request yang lewat proxy pada langkah berikutnya.

Apakah Axios Benar-Benar Mendukung HTTPS Proxy? (Meluruskan Kekeliruan)

Jawaban singkatnya: ya, di rilis stabil saat ini. Axios 1.19.0 mendokumentasikan CONNECT tunneling untuk target HTTPS di balik HTTP proxy. API download npm mencatat 117.890.039 unduhan Axios dari 31 Juli sampai 6 Agustus 2026, yang menunjukkan seberapa luas library ini dipakai. Saat Anda mengakses URL HTTPS lewat proxy, Axios versi sekarang mengirim request CONNECT untuk membangun tunnel, lalu TLS handshake terjadi end-to-end dengan origin asli. Saya mengujinya langsung: local HTTP proxy, local HTTPS origin dengan sertifikat self-signed, dan penghitung CONNECT di proxy saya naik persis seperti yang diharapkan.

Lalu kenapa kalimat “Axios HTTPS proxy rusak” muncul di hampir setiap thread forum tentang ini? Ada beberapa penyebab, dan semuanya nyata:

  • Versi Axios yang lama. Issue GitHub yang sering dibagikan biasanya sudah berumur dan menggambarkan perilaku spesifik rilis atau konfigurasi tertentu, jadi tidak layak digeneralisasi ke Axios versi sekarang.
  • Server proxy tanpa dukungan CONNECT. Dalam kondisi itu, tunnel memang gagal dan Axios seharusnya menampilkan error; tangkap rute dan error yang sebenarnya sebelum menyimpulkan ada bypass IP.
  • Mengira konfigurasi proxy sebagai sesuatu yang bukan itu. Opsi proxy adalah instruksi forward proxy, bukan tombol umum “rute semua traffic lewat agent ini apa pun yang terjadi”.

Chromium melaporkan pada 2023 bahwa lebih dari 90% navigasi Chrome di platform utama menggunakan HTTPS. Itu adalah metrik Chrome yang sudah cukup lama, bukan sensus web global terbaru, tapi cukup menjelaskan kenapa perilaku target HTTPS harus jadi pusat tutorial ini. Kalau Anda memakai Axios versi lama, reproduksi masalahnya di versi terbaru dulu sebelum menganggap isu historis itu masih relevan; uji upgrade-nya di aplikasi Anda sendiri sebelum dipasang ke production.

Saat Anda Tetap Ingin Memakai Agent Secara Eksplisit

Konfigurasi proxy bawaan cukup baik untuk satu proxy statis yang konvensional. Tapi begitu Anda butuh kontrol per-request, rotasi proxy, atau dukungan SOCKS, opsi bawaan Axios memang tidak dirancang untuk itu. Di sinilah HttpsProxyAgent jadi berguna, dan nanti akan saya bahas di bawah. Anggap opsi native sebagai “cukup untuk satu proxy, satu tujuan” dan pendekatan berbasis agent sebagai “yang benar-benar Anda inginkan di production.”

Jalur Environment Proxy di Node v24 dan v22.21+

Rilis Node terbaru menyediakan mode environment-proxy bawaan, yang diaktifkan lewat NODE_USE_ENV_PROXY=1 atau flag --use-env-proxy. Menurut dokumentasi CLI Node sendiri, fitur ini hadir di v24.0.0 dan di-backport ke v22.21.0 — jadi pernyataan “Node 22+” secara teknis kurang tepat; yang benar adalah v22.21.0 ke atas dalam lini itu. Kalau Anda masih memakai patch Node 22 yang lebih lama, flag ini sama sekali belum tersedia.

Axios versi sekarang sudah membaca HTTP_PROXY, HTTPS_PROXY, dan NO_PROXY melalui dependency proxy-from-env, jadi global-agent tidak diperlukan untuk jalur Axios saat ini. Saat mode env-proxy bawaan Node juga aktif, bisa ada dua lapisan yang terlibat dalam keputusan routing.

Dokumentasi Axios menyebutkan bahwa pada versi Node di mana agent membawa properti proxyEnv, Axios akan menyerahkan pemrosesan ke Node, bukan menyelesaikannya sendiri. Secara praktis, pilih salah satu sistem saja dan konsisten:

  • Biarkan Node yang mengurusnya: aktifkan flag, jangan isi konfigurasi proxy di Axios, dan biarkan env var bekerja.
  • Biarkan Axios yang mengurusnya: jangan aktifkan flag Node, dan biarkan resolusi env var milik Axios berjalan.
  • Ambil kontrol penuh secara manual: set proxy: false secara eksplisit dan sediakan httpsAgent Anda sendiri — ini melewati kedua sistem otomatis, dan ini yang saya sarankan begitu Anda butuh rotasi atau logika per-request.

Saya menguji resolusi sisi Axios secara langsung: mengatur HTTP_PROXY di environment child process membuat request lewat proxy lokal saya, dan menambahkan entri NO_PROXY yang cocok membuat request berikutnya melewatinya dengan benar. Jadi jalur env var memang sudah langsung bekerja sekarang — yang perlu diwaspadai adalah skenario dua mode aktif sekaligus.

5 Cara Menyambungkan Proxy ke Axios (Perbandingan)

Sebelum masuk ke kode, ini gambaran besarnya. Saya membangun dan menguji masing-masing metode ini pada setup proxy lokal yang nyata, bukan cuma dari membaca dokumentasi.

MetodeDukungan HTTPSDukungan AuthKontrol per RequestCocok untuk RotasiKompleksitas
Opsi inline proxy✅ (Axios versi sekarang)✅✅❌Rendah
Default axios.create()✅ (Axios versi sekarang)✅❌ (berlaku untuk seluruh instance)❌Rendah
Env var (HTTP_PROXY/HTTPS_PROXY)✅✅❌❌Rendah
httpsAgent + HttpsProxyAgent✅✅✅⚠️ (manual)Sedang
Request interceptor + pool agentâś…âś…âś…âś…Sedang-Tinggi

Gunakan opsi inline untuk skrip cepat yang hanya menembak satu proxy. Gunakan axios.create() kalau semua request di satu modul harus lewat proxy yang sama tanpa mengulang konfigurasi. Gunakan env var kalau tim infrastruktur Anda sudah mengelola routing proxy secara terpusat dan Anda hanya ingin mewarisinya. Pakai agent eksplisit saat Anda butuh kontrol yang tidak bisa diberikan konfigurasi native — dan pakai pola interceptor begitu “kontrol” berubah menjadi “rotasi.”

Tiga metode routing proxy Axios yang mengarah ke tujuan HTTPS

Langkah demi Langkah: Konfigurasi Proxy Dasar di Axios

Setup paling sederhana memakai objek proxy bawaan langsung di request:

import axios from 'axios';

const res = await axios.get('https://httpbin.org/ip', {
  proxy: {
    host: '203.0.113.10',
    port: 8080,
    protocol: 'http',
  },
});

console.log(res.data);

Jalankan ini dan Anda seharusnya melihat IP proxy di response, bukan IP Anda sendiri. Kalau Anda mengujinya secara lokal dengan proxy sungguhan, biasanya selesai jauh di bawah satu detik — dibandingkan, misalnya, mengatur proxy level sistem hanya untuk satu request, yang bisa menghabiskan lima belas menit yang tidak Anda punya.

Bandingkan response ini dengan baseline. Pengujian yang berhasil seharusnya menampilkan public IP proxy, bukan origin IP yang Anda catat sebelumnya.

Menggunakan axios.create() untuk Default di Seluruh Instance

Kalau semua request di suatu modul harus lewat proxy yang sama, masukkan konfigurasinya ke instance saja, jangan diulang terus:

const client = axios.create({
  proxy: {
    host: '203.0.113.10',
    port: 8080,
  },
  timeout: 15_000,
});

const res = await client.get('https://httpbin.org/ip');

Saya memverifikasi bahwa override proxy: false pada request individual bisa melewati default instance dengan bersih — berguna kalau 95% panggilan butuh proxy tetapi beberapa request (misalnya ping health-check) tidak perlu.

Menetapkan Proxy lewat Environment Variables

Untuk routing yang dikelola terpusat — misalnya container Docker atau environment CI di mana tim ops sudah mengatur env var proxy — Anda tidak perlu menyentuh konfigurasi Axios sama sekali:

export HTTP_PROXY=http://203.0.113.10:8080
export HTTPS_PROXY=http://203.0.113.10:8080
export NO_PROXY=localhost,127.0.0.1

Axios versi sekarang membaca variabel ini tanpa global-agent. Ingat batas versi Node yang dibahas tadi: jika NODE_USE_ENV_PROXY juga aktif, pastikan pemilik routing-nya jelas dan uji perilaku NO_PROXY di runtime yang digunakan.

Langkah demi Langkah: Setup HTTPS Proxy dengan httpsAgent (Untuk Kontrol Sungguhan)

Ini setup yang benar-benar saya sarankan begitu Anda butuh lebih dari sekadar “satu proxy, selamanya.” Instal package agent terbaru:

npm install https-proxy-agent

https-proxy-agent 9.1.0 membutuhkan Node 20 atau lebih baru dan mengirim CONNECT yang tepat ke proxy Anda sebelum meneruskan koneksi target melaluinya.

import axios from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';

const agent = new HttpsProxyAgent('http://203.0.113.10:8080');

const client = axios.create({
  proxy: false,        // hentikan resolusi native Axios agar tidak ikut campur
  httpsAgent: agent,
  timeout: 15_000,
});

const res = await client.get('https://httpbin.org/ip');
console.log(res.data);

Set proxy: false saat routing sudah ditentukan oleh explicit agent. Ini membuat konfigurasi jadi jelas dan mencegah resolusi proxy native Axios atau environment-proxy ikut bersaing dengan agent yang Anda sediakan.

Menambahkan Autentikasi Proxy

Masukkan kredensial langsung ke dalam URL proxy:

const agent = new HttpsProxyAgent('http://myuser:mypassword@203.0.113.10:8080');

Kalau password Anda mengandung karakter khusus — @, :, # biasanya paling sering bikin masalah — lakukan percent-encode dulu sebelum membangun URL, atau susun string dengan encodeURIComponent() pada tiap komponen. Tanda @ mentah di password akan dibaca sebagai awal bagian host, dan Anda akan mendapat error koneksi yang kelihatannya sama sekali tidak terkait dengan encoding.

Menggunakan SOCKS5 Proxy dengan Axios

SOCKS proxy tidak kompatibel dengan HttpsProxyAgent — Anda butuh agent lain untuk protokol ini:

npm install socks-proxy-agent
import { SocksProxyAgent } from 'socks-proxy-agent';

const agent = new SocksProxyAgent('socks5://myuser:mypass@203.0.113.10:1080');

const client = axios.create({
  proxy: false,
  httpsAgent: agent,
});

socks-proxy-agent 10.1.0 juga membutuhkan Node 20+. SOCKS5 berguna saat Anda berurusan dengan jaringan perusahaan yang hanya menyediakan gateway SOCKS, atau dengan provider proxy yang menawarkan dukungan protokol lebih fleksibel daripada HTTP proxy biasa.

Rotasi Proxy dengan Axios Request Interceptors

Memilih proxy secara acak di dalam kode pemanggil memang cukup untuk skrip sekali pakai. Tapi pendekatan itu runtuh ketika Anda mengirim ratusan request, karena tidak ada tempat terpusat untuk melacak proxy yang mati, tidak ada retry logic, dan kode pemilihan proxy akhirnya tersalin di banyak tempat. Sistem interceptor Axios memberi logic itu satu rumah yang bisa diuji; tidak satu pun dari lima tutorial pesaing yang saya review di SERP memakai pola ini.

Request GET Axios berotasi di antara tiga proxy dengan satu retry terbatas

Membangun Proxy Pool

import axios, { AxiosError, InternalAxiosRequestConfig } from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';

class ProxyPool {
  private agents: HttpsProxyAgent<string>[];
  private index = 0;

  constructor(proxyUrls: string[]) {
    this.agents = proxyUrls.map((url) => new HttpsProxyAgent(url));
  }

  next(): HttpsProxyAgent<string> {
    const agent = this.agents[this.index];
    this.index = (this.index + 1) % this.agents.length;
    return agent;
  }
}

const pool = new ProxyPool([
  'http://user:pass@proxy1.example.com:8080',
  'http://user:pass@proxy2.example.com:8080',
]);

const client = axios.create({ timeout: 15_000 });

client.interceptors.request.use((config: InternalAxiosRequestConfig) => {
  config.proxy = false;
  config.httpsAgent = pool.next();
  return config;
});

Saya menjalankan ini terhadap dua proxy lokal dan memastikan request bergantian dengan benar — proxy A, lalu proxy B, lalu kembali ke A. Perhatikan bahwa Axios mengeksekusi request interceptor secara last-in-first-out, jadi kalau Anda punya interceptor lain (header auth, logging), urutannya lebih penting dari yang mungkin Anda bayangkan.

Menambahkan Response Interceptor dengan Pengaman Retry

Di sinilah kebanyakan skrip rotasi buatan sendiri mulai ceroboh. Retry secara membabi buta pada setiap kegagalan, terhadap pool tanpa batas, bisa mengubah satu request gagal menjadi rangkaian masalah — terutama untuk metode non-idempotent seperti POST, di mana retry bisa menggandakan side effect yang sebenarnya tidak ingin Anda gandakan.

type RetryableConfig = InternalAxiosRequestConfig & {
  __proxyRetryCount?: number;
};

client.interceptors.response.use(
  undefined,
  async (error: AxiosError) => {
    const config = error.config as RetryableConfig | undefined;
    if (!config) throw error;

    const method = String(config.method ?? 'get').toUpperCase();
    config.__proxyRetryCount ??= 0;
    if (method !== 'GET' || config.__proxyRetryCount >= 1) throw error;

    config.__proxyRetryCount += 1;
    config.proxy = false;
    config.httpsAgent = pool.next();
    return client.request(config);
  }
);

Saya mengujinya terhadap proxy yang sengaja dibuat rusak dan memastikan hanya satu retry yang terjadi pada agent alternatif — tidak ada infinite loop, dan tidak ada retry pada request POST. Itulah batas yang Anda perlukan: kebijakan retry yang jujur soal request mana yang aman untuk diulang, bukan trik “coba lagi terus sampai berhasil.”

Troubleshooting proxy Axios dengan cURL, autentikasi 407, dan pengecekan timeout

Tabel Diagnosis Error: Pemetaan Setiap Kegagalan ke Solusinya

Simpan ini. Ini error yang benar-benar muncul di issue GitHub Axios dan thread Stack Overflow, bukan yang hipotetis.

Error / GejalaPenyebab KemungkinanSolusi
ECONNREFUSEDHost/port salah, atau server proxy sedang downVerifikasi dengan curl -x http://host:port target-url sebelum menyentuh kode Axios
407 Proxy Authentication RequiredKredensial hilang atau salahTambahkan auth: { username, password } ke konfigurasi proxy, atau sematkan kredensial di URL HttpsProxyAgent
403 ForbiddenOrigin atau WAF menolak request atau IP proxyCek kebijakan akses situs, autentikasi, dan laju request; jangan menganggap header atau IP yang berbeda sebagai izin untuk melewati pembatasan
Response menampilkan IP asli AndaNO_PROXY, proxy:false, explicit direct agent, atau konfigurasi historis/spesifik versi mungkin melewati proxyTelusuri lapisan mana yang mengurus routing; verifikasi jalurnya dengan endpoint IP terkontrol dan explicit agent jika perlu
ETIMEDOUTInterval connect atau response melewati timeout yang dikonfigurasiUkur di mana waktu habis; ubah timeout hanya jika beban kerjanya memang layak, kalau tidak ganti atau beri jeda pada jalur yang bermasalah
ECONNRESET di tengah responseProxy, jaringan, atau origin menutup koneksiCatat hop yang gagal; retry hanya request yang aman diulang dengan budget terbatas
502 Bad Gateway di belakang Nginxproxy_pass Nginx salah konfigurasi, atau timeout Axios tidak cocok dengan NginxPeriksa proxy_connect_timeout dan proxy_read_timeout (keduanya default 60 detik) dan selaraskan dengan timeout Axios
ERR_TLS_CERT_ALTNAME_INVALIDTipe agent salah untuk target, atau sertifikat self-signedPastikan Anda memakai agent yang tepat untuk protokolnya; set rejectUnauthorized: false hanya untuk testing lokal — jangan pernah di production

Checklist Debugging Cepat

Saat sesuatu rusak dan Anda tidak tahu penyebabnya, ikuti langkah ini berurutan:

  1. Uji proxy langsung dengan curl -x http://host:port https://your-target.com. Jika gagal, selidiki konektivitas proxy, autentikasi, dan target sebelum mengubah Axios. Jika berhasil, jalur Axios tetap perlu verifikasi terpisah.
  2. Pastikan versi Axios dan Node yang benar-benar Anda jalankan, lalu bandingkan laporan historis dengan release/konfigurasi yang sama sebelum memakai solusinya.
  3. Tentukan sistem mana yang sedang menyelesaikan proxy — konfigurasi native Axios, resolusi env var Axios, mode env-proxy bawaan Node, atau explicit agent. Jangan biarkan lebih dari satu pihak menguasai request yang sama.
  4. Periksa NO_PROXY untuk kecocokan hostname yang tidak disengaja.
  5. Jika memakai explicit agent, pastikan proxy: false diset agar Axios tidak mencoba menanganinya dua kali.

Kapan Sebaiknya Tidak Perlu Membangun Plumbing Proxy Sendiri

Semua hal di atas memang sangat berguna kalau tujuan Anda memang merutekan traffic secara bebas — testing jaringan perusahaan, geo-testing aplikasi, atau egress terkontrol. Tapi banyak developer datang ke pertanyaan “bagaimana cara menyiapkan Axios proxy” padahal sebenarnya mereka hanya ingin data dari sebuah situs, dan proxy cuma sarana menuju tujuan itu.

Kalau itu situasi Anda, ada baiknya bertanya: apakah Anda benar-benar butuh proxy, atau justru butuh scraping API yang menangani infrastrukturnya untuk Anda? Open API milik Thunderbit menerima URL dan schema lalu mengembalikan JSON terstruktur — tanpa parsing HTML mentah, tanpa library agent, tanpa perlu menjaga proxy pool. Endpoint /extract menangani halaman yang dirender JS, anti-bot, dan CAPTCHA di sisi server, dan ada endpoint /distill yang lebih ringan untuk mengubah halaman menjadi Markdown bersih kalau itu saja yang Anda perlukan. Ada juga MCP server yang menyediakan tool seperti thunderbit_extract dan thunderbit_suggest_fields, sehingga coding assistant seperti Claude atau Cursor bisa mengambil data terstruktur di tengah tugas tanpa menyentuh konfigurasi proxy sama sekali, plus CLI untuk workflow terminal dan CI.

KebutuhanDIY Axios + ProxyThunderbit API/MCP/CLI
Sumber dan rotasi proxyAnda yang mengelolaDitangani di sisi server
Tantangan browser dan aksesAnda mengoperasikan lapisan browser/jaringanDikelola oleh layanan sesuai kemampuan yang didokumentasikan
Halaman yang dirender JSPerlu headless browserrenderMode: full
Format outputHTML mentah → Anda yang parsingJSON terstruktur melalui schema
Pemeliharaan saat situs berubahAnda yang memelihara parsing/selectorLapisan ekstraksi terkelola mengurangi sebagian pemeliharaan di sisi aplikasi

Framing yang jujur: kalau Anda memang perlu merutekan traffic untuk testing atau networking perusahaan, tidak ada yang di atas menggantikan Axios dan konfigurasi proxy. Kalau hasil akhir yang Anda butuhkan adalah data web terstruktur, pendekatan API-first bisa mengurangi kode proxy, browser, dan parsing yang harus dimiliki aplikasi Anda. Saat pengambilan pada 7 Agustus 2026, dokumentasi rate limit API Thunderbit mencantumkan Free tier sebesar 10 request per menit dan 2 concurrent request. Perlakukan itu sebagai batas API yang sensitif waktu dan cek ulang halaman tersebut sebelum mengandalkannya di production.

Penutup

Pelajaran inti di sini cukup bertolak belakang dengan banyak tutorial lama: dokumentasi Axios versi sekarang dan, dalam pengujian lokal yang dicatat, memang menggunakan CONNECT tunneling dengan benar untuk target HTTPS. Kegagalan historis tetap penting, tetapi harus dilihat dalam konteks versi dan konfigurasi. Konfigurasi native adalah titik awal yang bagus karena sederhana; saat Anda butuh kontrol per-request, dukungan SOCKS, atau rotasi, HttpsProxyAgent (atau SocksProxyAgent) yang dipasangkan dengan proxy: false memberi ownership yang jauh lebih jelas. Dan kalau Anda merotasi melalui pool di production, request dan response interceptor menyediakan tempat terpusat yang bisa diuji untuk melakukannya — pastikan saja retry logic Anda punya pengaman loop dan hanya mengulang request yang memang aman diulang.

Simpan tabel diagnosis di atas untuk kali berikutnya konfigurasi proxy melempar error yang membingungkan jam 2 pagi. Dan kalau Anda mendapati diri menghabiskan lebih banyak waktu debugging plumbing proxy daripada benar-benar memakai data yang ingin Anda ambil, mungkin sudah saatnya mengecek apakah alat ekstraksi berbasis API bisa menyelesaikan masalah yang sebenarnya lebih cepat daripada infrastruktur apa pun.

FAQ

Apakah Axios mendukung HTTPS proxy secara native? Ya, pada Axios versi sekarang untuk HTTP proxy konvensional: dokumentasi saat ini menjelaskan CONNECT tunneling untuk target HTTPS, dan Axios 1.19.0 berhasil melewati rute itu dalam pengujian lokal yang dicatat. Rilis historis dan konfigurasi proxy tertentu memang pernah gagal, jadi verifikasi versi dan proxy yang tepat, jangan berasumsi semuanya selalu berhasil atau selalu gagal.

Bagaimana cara merotasi proxy di Axios? Gunakan request interceptor untuk menetapkan httpsAgent yang berbeda dari proxy pool sebelum setiap request dikirim, lalu pasangkan dengan response interceptor yang me-retry request gagal melalui proxy lain. Batasi retry dengan ketat — satu kali retry, dan hanya untuk metode idempotent seperti GET — supaya Anda tidak tanpa sengaja mengulang request yang tidak seharusnya diulang.

Kenapa proxy Axios saya menampilkan IP asli saya? Periksa apakah NO_PROXY, proxy:false, explicit direct agent, atau routing spesifik deployment melewati proxy. Catat versi Axios/Node dan uji proxy secara independen dengan cURL. Jika Anda butuh routing per-request yang tidak ambigu, gunakan HttpsProxyAgent dengan proxy:false dan verifikasi IP yang terlihat pada endpoint terkontrol.

Bisakah saya memakai SOCKS5 proxy dengan Axios? Bisa, lewat package socks-proxy-agent. Buat instance SocksProxyAgent dengan URL SOCKS Anda dan pass sebagai httpsAgent di konfigurasi Axios — pastikan Anda tidak juga memakai HttpsProxyAgent, karena kedua protokol memakai jenis agent yang berbeda.

Apa perbedaan antara opsi proxy dan httpsAgent di Axios? Opsi proxy adalah konfigurasi bawaan Axios untuk satu proxy statis dan cocok untuk use case sederhana di versi sekarang. httpsAgent menerima custom Node.js agent — seperti HttpsProxyAgent atau SocksProxyAgent — sehingga memberi Anda kontrol langsung per request atas routing, autentikasi, dan rotasi yang memang tidak dirancang untuk ditangani oleh opsi native.

Pelajari Lebih Lanjut

Ke
Ke
CTO di Thunderbit | Senior Data Scientist & Expert ML Dengan pengalaman hampir satu dekade di bidang machine learning dan data science, Ke Shen adalah lulusan Columbia University dan mantan Senior Data Scientist di Walmart Labs. Dengan keahlian mendalam yang diakui sejawat dalam Python, R, Java, dan Statistik, ia membagikan wawasan teruji lapangan tentang bagaimana membawa algoritma AI yang kompleks dari teori ke arsitektur siap produksi.
Topics
Axios proxyNode.js proxyHTTPS proxy
Daftar Isi
Thunderbit · Agen data web AI

Ekstrak data dari halaman apa pun dalam 1 klik

Dipercaya oleh 250.000+ pengguna
tersedia paket gratis
Dari halaman web ke spreadsheet
Jelaskan apa yang kamu butuhkan — AI Agent Thunderbit akan men-scrape dan mengekspornya ke Excel, Google Sheets, Airtable, atau Notion. Gratis untuk memulai.
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week