Cara menyediakan proksi dalam Node.js (Axios & Fetch Asli)
Updated:
Pilihan terbina dalam proxy: { host, port } milik Axios gagal pada sasaran https:// kerana ia tidak membina terowong HTTP CONNECT. Untuk menghalakan permintaan Node.js dan TypeScript dengan lancar melalui proksi HTTP(S) VinaProxy yang disahkan, hantarkan HttpsProxyAgent (https-proxy-agent) kepada Axios atau penghantar undici.ProxyAgent kepada fetch() asli 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
Konfigurasi proksi Axios lwn. fetch() asli Node.js
Kedua-dua pustaka menerima URL standard http://user:pass@ip:port daripada papan pemuka VinaProxy anda:
| Klien HTTP | Pakej | Coretan Kod Disyorkan |
|---|---|---|
| Axios | npm i https-proxy-agent | axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false }) |
fetch Asli (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' }) } }) |
Amalan terbaik pengumpulan sambungan & masa tamat dalam Node.js
- Sentiasa tetapkan
proxy: falsebersama-samahttpsAgentdalam Axios supaya Axios mengabaikan pemboleh ubah persekitaranHTTP_PROXYsistem yang bercanggah - Mulakan tika
HttpsProxyAgentatauProxyAgentsekali sahaja bagi setiap IP proksi di luar gelung anda untuk menggunakan semula soket keep-alive yang berterusan - Eksport senarai proksi VinaProxy anda terus sebagai tatasusunan JSON menggunakan Penukar Format Proksi kami
Langkah demi langkah
- 1
Pasang https-proxy-agent (atau undici)
Jalankan
npm install axios https-proxy-agentdalam projek Node.js anda. - 2
Cipta tika HttpsProxyAgent
Mulakan
const agent = new HttpsProxyAgent('http://user:pass@ip:port');menggunakan kelayakan VinaProxy anda. - 3
Hantarkan httpsAgent dan proxy: false kepada Axios
Panggil
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Sahkan IP keluar
Logkan
res.datauntuk mengesahkan bahawa respons diterima melalui IP proksi khusus anda.
Soalan lazim
Mengapakah `proxy: { host, port, auth }` lalai Axios gagal pada URL HTTPS?
Konfigurasi proksi terbina dalam Axios menghantar permintaan HTTP biasa dan bukannya membuka terowong TLS HTTP CONNECT. Penggunaan httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') bersama proxy: false menyelesaikan masalah ini.
Bagaimanakah cara saya menggunakan proksi dengan `fetch()` asli dalam Node.js 18/20/22?
Import ProxyAgent daripada undici dan hantarkan { dispatcher: new ProxyAgent('http://user:pass@ip:port') } dalam objek pilihan fetch().
Bolehkah saya menukar senarai proksi saya kepada JSON untuk Node.js?
Boleh—tampal baris ip:port:user:pass anda ke dalam Penukar Format Proksi percuma kami dan pilih output JSON.
Kuasakan bahagian belakang & pengikis Node.js anda dengan IP statik
Proksi IPv4 Khusus dan ISP Statik tanpa had segera di 7 buah negara.
Beli Proksi Node.js