Интеграције · Почетник

Како користити проки у Ноде.јс са Фетцх, ундици, акиос и добио

На подржаним Ноде.јс издањима, НОДЕ_УСЕ_ЕНВ_ПРОКСИ=1 омогућава ХТТП_ПРОКСи, ХТТПС_ПРОКСЈ и НО_ПРОКСИИ за уграђени преузимање; --усе-енв-проки је доступан у Ноде.јс 22.21+ и 24.5+. Експлицитан ундици ПрокиАгент или ЕнвХттпПрокиАгент је алтернатива. Либрације са сопственим превозом или прилагођеним агентима потребна је посебна конфигурација, тако да тестирајте сваки алат уместо под претпоставком цео процес је покривен.

2 мин читати 6 одељака Рецензиран Редакција тима Proxy Cyber

Буилт-ин Фетцх и унди#

Чвор је глобална fetch је ундици. Дајте му ProxyAgent по захтеву са dispatcher опција, или подесите га глобално једном са setGlobalDispatcher.

undici
import { fetch, ProxyAgent, setGlobalDispatcher } from "undici";

const proxy = new ProxyAgent("http://USER-cc-us:PASS@res.proxy-cyber.com:9000");

// Per request
const res = await fetch("https://api.ipify.org", { dispatcher: proxy });
console.log(await res.text());

// Or globally, for every fetch in the process
setGlobalDispatcher(proxy);

A ProxyAgent базени везе, тако да следећи захтеви могу поново користити једну везу и стога један излаз. За свеж излаз по захтеву створити агента са pipelining: 0 и connections: 1, Или једноставно користите другачији -sid- по логичкој сесији.

axios#

axios је сопствени proxy опција не тунел ХТТПС поуздано; стандардни приступ је агент из https-proxy-agent и proxy: false.

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

const agent = new HttpsProxyAgent("http://USER-cc-de-city-berlin-sid-cart42-ttl-15m:PASS@res.proxy-cyber.com:9000");
const client = axios.create({ httpsAgent: agent, httpAgent: agent, proxy: false, timeout: 30000 });

const { data } = await client.get("https://api.ipify.org");
console.log(data);

добио#

добио
import got from "got";
import { HttpsProxyAgent } from "https-proxy-agent";

const agent = new HttpsProxyAgent("http://USER-cc-us:PASS@res.proxy-cyber.com:9000");
const body = await got("https://api.ipify.org", { agent: { https: agent, http: agent }, timeout: { request: 30000 } }).text();
console.log(body);

СОЦКС5#

чарапе-проки-агент
import fetch from "node-fetch";
import { SocksProxyAgent } from "socks-proxy-agent";

const agent = new SocksProxyAgent(process.env.PROXY_URL);
const response = await fetch("https://api.ipify.org", { agent });
console.log(await response.text());

Променљиве окружења#

undici не чита HTTPS_PROXY По дефаулту. Недавне верзије ундици брод EnvHttpProxyAgent, који то ради; поставите га као глобални диспечер и цео процес, укључујући библиотеке трећих страна изграђене на преузимању, пролази кроз проки.

ЕнвХттпПрокиАгент
import { EnvHttpProxyAgent, setGlobalDispatcher } from "undici";
// HTTPS_PROXY=http://USER-cc-us:PASS@res.proxy-cyber.com:9000 NO_PROXY=localhost node app.js
setGlobalDispatcher(new EnvHttpProxyAgent());

Конкурентност и ротација#

  • Један ProxyAgent по лепљивој сесији (различито -sid-), који се деле по свим захтевима те сесије.
  • За широку ротацију, држите једно средство, али онемогућите поновно коришћење везе или покрените N агенте са N ИД-овима сесије и округлим Робином.
  • Гледајте UND_ERR_SOCKET и ECONNRESET: стамбени излаз је отишао; поново једном, следећа веза бира другу.

Питања која људи постављају#

Зашто аксиоси игноришу мој прокси за HTTPS?

Његова уграђена прокси подршка је ограничена за Цоннецт тунеле. Користите хттпс-проки-агент као хттпсАгент и поставите проки: лажне тако да аксиоси не покушавају да се сами носе са њим.

Могу ли да заменим само неке захтеве?

Прођите диспечер или агент на захтеве који су му потребни и оставите остале неприкладне; ништа није глобално осим ако не позовете сетГлобалДиспатцхер.

Ваш налог

Управљајте свим проксијима са једног налога

Упоредите мреже, наручите и пратите свој баланс и захтеве за подршку са једне контролне табле. Наш тим прегледа плаћања и пружа детаље о вези након испоруке.

Направи налог