Πώς να ρυθμίσετε ένα proxy στο Node.js (Axios & Native Fetch)
Updated:
Η ενσωματωμένη επιλογή proxy: { host, port } του Axios αποτυγχάνει σε προορισμούς https:// επειδή δεν δημιουργεί ένα τούνελ HTTP CONNECT. Για να δρομολογήσετε καθαρά αιτήματα Node.js και TypeScript μέσω των HTTP(S) proxies με ταυτοποίηση του VinaProxy, περάστε έναν HttpsProxyAgent (https-proxy-agent) στο Axios ή έναν dispatcher undici.ProxyAgent στο native Node fetch().
new HttpsProxyAgent('http://user:pass@ip:port')- 1 IP40.000 ₫
- 5+ IP35.000 ₫
- 10+ IP25.000 ₫
- 20+ IP25.000 ₫
- 50+ IP25.000 ₫
- 100+ IP25.000 ₫
- 200+ IP25.000 ₫
- 500+ IP25.000 ₫
- 1000+ IP22.000 ₫
- 2000+ IP20.000 ₫
- 1 IP40.000 ₫
- 5+ IP35.000 ₫
- 10+ IP25.000 ₫
- 20+ IP25.000 ₫
- 50+ IP25.000 ₫
- 100+ IP25.000 ₫
- 200+ IP25.000 ₫
- 500+ IP25.000 ₫
- 1000+ IP22.000 ₫
- 2000+ IP20.000 ₫
Διαμόρφωση proxy: Axios έναντι Native Node.js fetch()
Και οι δύο βιβλιοθήκες δέχονται τυπικά URL της μορφής http://user:pass@ip:port από τον πίνακα ελέγχου σας στο VinaProxy:
| HTTP Client | Πακέτο | Προτεινόμενο απόσπασμα κώδικα |
|---|---|---|
| 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' }) } }) |
Βέλτιστες πρακτικές για connection pooling & timeout στο Node.js
- Ορίζετε πάντα
proxy: falseμαζί με τοhttpsAgentστο Axios, ώστε το Axios να αγνοεί αντικρουόμενες μεταβλητές περιβάλλοντοςHTTP_PROXYτου συστήματος - Αρχικοποιήστε το
HttpsProxyAgentή τοProxyAgentμία φορά ανά IP του proxy έξω από τον βρόχο σας, για να επαναχρησιμοποιείτε μόνιμα keep-alive sockets - Εξαγάγετε τη λίστα proxies σας από το VinaProxy απευθείας ως πίνακα JSON χρησιμοποιώντας το Proxy Format Converter
Βήμα προς βήμα
- 1
Εγκαταστήστε το https-proxy-agent (ή το undici)
Εκτελέστε την εντολή
npm install axios https-proxy-agentστο Node.js project σας. - 2
Δημιουργήστε το instance του HttpsProxyAgent
Αρχικοποιήστε το
const agent = new HttpsProxyAgent('http://user:pass@ip:port');χρησιμοποιώντας τα στοιχεία σύνδεσής σας στο VinaProxy. - 3
Περάστε τα httpsAgent και proxy: false στο Axios
Καλέστε
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Επαληθεύστε την IP εξόδου
Καταγράψτε το
res.dataγια να επιβεβαιώσετε ότι η απόκριση προήλθε μέσω της dedicated proxy IP σας.
Συχνές ερωτήσεις
Γιατί η προεπιλεγμένη ρύθμιση `proxy: { host, port, auth }` του Axios αποτυγχάνει σε HTTPS URL;
Η ενσωματωμένη ρύθμιση proxy του Axios στέλνει ένα απλό αίτημα HTTP αντί να ανοίγει ένα TLS tunnel HTTP CONNECT. Η χρήση του httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') με proxy: false το επιλύει αυτό.
Πώς χρησιμοποιώ proxy με το native `fetch()` στο Node.js 18/20/22;
Κάντε import το ProxyAgent από το undici και περάστε το { dispatcher: new ProxyAgent('http://user:pass@ip:port') } στο αντικείμενο επιλογών του fetch().
Μπορώ να μετατρέψω τη λίστα των proxy μου σε JSON για το Node.js;
Ναι—επικολλήστε τις γραμμές ip:port:user:pass σας στο δωρεάν εργαλείο μας Proxy Format Converter και επιλέξτε έξοδο JSON.
Ενισχύστε τα Node.js backend και scrapers σας με στατικές IP
Άμεσα unmetered Dedicated IPv4 και Static ISP proxies σε 7 χώρες.
Αγοράστε Node.js Proxies