Jak skonfigurować proxy w Node.js (Axios i natywny Fetch)
Updated:
Wbudowana w Axios opcja proxy: { host, port } nie działa w przypadku celów https://, ponieważ nie tworzy tunelu HTTP CONNECT. Aby poprawnie kierować żądania w Node.js i TypeScript przez uwierzytelniane proxy HTTP(S) od VinaProxy, przekaż HttpsProxyAgent (https-proxy-agent) do Axios lub dyspozytor undici.ProxyAgent do natywnego fetch() w Node.
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
Konfiguracja proxy: Axios a natywny fetch() w Node.js
Obie biblioteki obsługują standardowe adresy URL http://user:pass@ip:port z Twojego panelu VinaProxy:
| Klient HTTP | Pakiet | Zalecany fragment kodu |
|---|---|---|
| Axios | npm i https-proxy-agent | axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false }) |
Natywny 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' }) } }) |
Dobre praktyki dotyczące puli połączeń i limitów czasu w Node.js
- Zawsze ustawiaj
proxy: falseobokhttpsAgentw Axios, aby biblioteka ignorowała sprzeczne zmienne środowiskoweHTTP_PROXYsystemu - Twórz instancję
HttpsProxyAgentlubProxyAgentraz na adres IP proxy poza pętlą, aby ponownie wykorzystywać trwałe gniazda keep-alive - Eksportuj listę proxy VinaProxy bezpośrednio jako tablicę JSON za pomocą naszego narzędzia Proxy Format Converter
Krok po kroku
- 1
Zainstaluj https-proxy-agent (lub undici)
Uruchom
npm install axios https-proxy-agentw swoim projekcie Node.js. - 2
Utwórz instancję HttpsProxyAgent
Zainicjalizuj
const agent = new HttpsProxyAgent('http://user:pass@ip:port');, używając swoich danych uwierzytelniających VinaProxy. - 3
Przekaż httpsAgent oraz proxy: false do Axios
Wywołaj
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Zweryfikuj wychodzący adres IP
Wyświetl
res.dataw dzienniku, aby potwierdzić, że odpowiedź nadeszła przez Twój dedykowany adres IP proxy.
Często zadawane pytania
Dlaczego domyślna opcja `proxy: { host, port, auth }` w Axios nie działa z adresami HTTPS?
Wbudowana konfiguracja proxy w Axios wysyła zwykłe żądanie HTTP zamiast otworzyć tunel TLS HTTP CONNECT. Użycie httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') z parametrem proxy: false rozwiązuje ten problem.
Jak korzystać z proxy za pomocą natywnego `fetch()` w Node.js 18/20/22?
Zaimportuj ProxyAgent z pakietu undici i przekaż { dispatcher: new ProxyAgent('http://user:pass@ip:port') } w obiekcie opcji fetch().
Czy mogę przekonwertować listę proxy na format JSON dla Node.js?
Tak — wklej linie w formacie ip:port:user:pass do naszego darmowego narzędzia Proxy Format Converter i wybierz format wyjściowy JSON.
Wzmocnij swoje backendy i scrapery w Node.js statycznymi adresami IP
Błyskawiczne, nielimitowane dedykowane proxy IPv4 oraz statyczne ISP w 7 krajach.
Kup proxy dla Node.js