Как да настроите прокси в Node.js (Axios и Native Fetch)
Updated:
Вградената опция proxy: { host, port } в Axios дава грешка при https:// адреси, тъй като не създава HTTP CONNECT тунел. За да пренасочвате надеждно заявки в Node.js и TypeScript през HTTP(S) проксита с автентикация от VinaProxy, подайте HttpsProxyAgent (https-proxy-agent) към Axios или диспечер undici.ProxyAgent към вградения Node fetch().
new HttpsProxyAgent('http://user:pass@ip:port')- 1 IP40 000 VND
- 5+ IP адреса35 000 VND
- 10+ IP адреса25 000 VND
- 20+ IP адреса25 000 VND
- 50+ IP адреса25 000 VND
- 100+ IP адреса25 000 VND
- 200+ IP адреса25 000 VND
- 500+ IP адреса25 000 VND
- 1000+ IP адреса22 000 VND
- 2000+ IP адреса20 000 VND
- 1 IP40 000 VND
- 5+ IP адреса35 000 VND
- 10+ IP адреса25 000 VND
- 20+ IP адреса25 000 VND
- 50+ IP адреса25 000 VND
- 100+ IP адреса25 000 VND
- 200+ IP адреса25 000 VND
- 500+ IP адреса25 000 VND
- 1000+ IP адреса22 000 VND
- 2000+ IP адреса20 000 VND
Конфигуриране на прокси в Axios спрямо вградения Node.js fetch()
И двете библиотеки приемат стандартни http://user:pass@ip:port URL адреси от вашето табло за управление на VinaProxy:
| HTTP клиент | Пакет | Препоръчителен кодов фрагмент |
|---|---|---|
| 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' }) } }) |
Добри практики за пулинг на връзките и таймаути в Node.js
- Винаги задавайте
proxy: falseзаедно сhttpsAgentв Axios, така че Axios да игнорира конфликтни системни променливи на средата катоHTTP_PROXY - Инициализирайте
HttpsProxyAgentилиProxyAgentеднократно за всеки прокси IP адрес извън цикъла, за да преизползвате постоянни keep-alive сокети - Експортирайте своя списък с проксита от VinaProxy директно като JSON масив чрез нашия Конвертор на прокси формати
Стъпка по стъпка
- 1
Инсталирайте https-proxy-agent (или undici)
Изпълнете
npm install axios https-proxy-agentвъв вашия Node.js проект. - 2
Създайте инстанция на 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в конзолата, за да потвърдите, че отговорът е получен през вашия специализиран прокси IP адрес.
Често задавани въпроси
Защо стандартната опция `proxy: { host, port, auth }` в Axios дава грешка при HTTPS адреси?
Вградената прокси конфигурация на Axios изпраща обикновена HTTP заявка вместо да отвори HTTP CONNECT TLS тунел. Използването на httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') заедно с proxy: false коригира това.
Как да използвам прокси с вградения `fetch()` в Node.js 18/20/22?
Импортирайте ProxyAgent от undici и подайте { dispatcher: new ProxyAgent('http://user:pass@ip:port') } в обекта с опции на fetch().
Мога ли да конвертирам списъка си с проксита в JSON за Node.js?
Да — поставете вашите редове във формат ip:port:user:pass в нашия безплатен Конвертор на прокси формати и изберете извеждане като JSON.
Осигурете статични IP адреси за своите бекенди и скрейпъри в Node.js
Незабавни Dedicated IPv4 и статични ISP проксита с неограничен трафик в 7 държави.
Купете проксита за Node.js