Integraatiot · Aloittelijan taso

Kuinka käyttää välityspalvelimia Node.js:ssä fetch-, undici-, axios- ja got-toiminnoilla

Tuetuissa Node.js-julkaisuissa NODE_USE_ENV_PROXY=1 mahdollistaa HTTP_PROXYN, HTTPS_PROXYn ja NO_PROXyn sisäänrakennetulle noutajalle; --use-env-proxy on käytettävissä Node.jsissa 22.21+ ja 24.5+. Selkeä undici ProxyAgent tai EnvHttpProxyAgent on vaihtoehto. Kirjastot, joilla on omat kuljetukset tai mukautetut agentit, tarvitsevat erillisen asetuksen, joten testaa jokaista työkalua sen sijaan, että oletat koko prosessin olevan katettu.

2 min lukeminen 6 osaa Tarkastettu Toimituskunta Proxy Cyber

Sisäänrakennettu nouto ja undici#

Solmun globaali fetch Anna sille mahdollisuus. ProxyAgent Pyynnöstä dispatcher vaihtoehto, tai asettaa sen globaalisti kerran setGlobalDispatcher.

Yhdeksän
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 Jotta pyyntöä kohti saataisiin uusi ulostulo, luo agentti käyttämällä seuraavaa komentoa: \n\n\r\n\t\n\p\n\s\n\. pipelining: 0 ja connections: 1, tai yksinkertaisesti käyttää toista -sid- loogista istuntoa kohti.

akselit#

Axiosin oma proxy Tämä vaihtoehto ei tunneloi HTTPS:ää luotettavasti; vakiolähestymistapa on agentti, joka https-proxy-agent ja proxy: false.

akselit
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);

- Sain.#

- Sain.
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);

SOCKS5#

Socks-välityspalvelin
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());

Ympäristömuuttujat#

undici ei lue HTTPS_PROXY Viimeisimmät undici-versiot toimitetaan EnvHttpProxyAgent, joka tekee; aseta se globaaliksi lähettäjäksi ja koko prosessi, mukaan lukien fetchiin rakennetut kolmannen osapuolen kirjastot, kulkee välityspalvelimen kautta.

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());

Samanaikainen toiminta ja vuorottelu#

  • Yksi ProxyAgent Sticky-istuntoa kohden (eri -sid-), joka on yhteinen kaikille kyseisen istunnon pyynnöille.
  • Jos haluat laajan vuorottelun, pidä yksi agentti mutta poista yhteyden uudelleenkäyttö käytöstä tai suorita N agenttia N istuntotunnuksella ja kierrä niitä.
  • Katso. UND_ERR_SOCKET ja ECONNRESET: asuinalueen uloskäynti meni pois; yritä uudelleen kerran, seuraava yhteys valitsee toisen.

Ihmiset kysyvät kysymyksiä#

Miksi axios ohittaa välityspalvelimeni HTTPS:n yhteydessä?

Käytä https-proxy-agentia httpsAgent:ina ja aseta proxy: false, jotta axios ei yritä käsitellä sitä itse.Käytä https-Proxy-agenttia httpsAgent-näkymän välityspalvelimena.

Voinko välittäjänä käsitellä vain joitakin pyyntöjä?

Kyllä.Ohita lähettäjä tai agentti pyynnöissä, jotka tarvitsevat sitä ja jätä muut koskemattomiksi; mikään ei ole globaali, ellet kutsu setGlobalDispatcher.

Oma tilisi »

Hallitse kaikkia proxyjäsi yhdellä tilillä

Vertaa verkkoja, tee tilauksia ja seuraa saldoasi ja tukipyyntöjäsi yhdestä hallintapaneelista.Tiimimme tarkastaa maksut ja antaa yhteystiedot toimituksen jälkeen.

Luo tili