Välityspalvelimen määrittäminen Node.js:ssä (Axios & natiivi fetch)
Updated:
Axiosin sisäänrakennettu asetus proxy: { host, port } epäonnistuu https://-kohteissa, koska se ei muodosta HTTP CONNECT -tunnelia. Reitittääksesi Node.js- ja TypeScript-pyynnöt sujuvasti todennettujen VinaProxy-HTTP(S)-välityspalvelinten kautta, anna Axiosille HttpsProxyAgent (https-proxy-agent) tai Noden natiiville fetch()-kutsulle undici.ProxyAgent-dispatcher.
new HttpsProxyAgent('http://user:pass@ip:port')- 1 IP40 000 VND
- 5+ IP:tä35 000 VND
- 10+ IP:tä25 000 VND
- 20+ IP:tä25 000 VND
- 50+ IP:tä25 000 VND
- 100+ IP:tä25 000 VND
- 200+ IP:tä25 000 VND
- 500+ IP:tä25 000 VND
- 1000+ IP:tä22 000 VND
- 2000+ IP:tä20 000 VND
- 1 IP40 000 VND
- 5+ IP:tä35 000 VND
- 10+ IP:tä25 000 VND
- 20+ IP:tä25 000 VND
- 50+ IP:tä25 000 VND
- 100+ IP:tä25 000 VND
- 200+ IP:tä25 000 VND
- 500+ IP:tä25 000 VND
- 1000+ IP:tä22 000 VND
- 2000+ IP:tä20 000 VND
Axios vs. natiivin Node.js fetch() -funktion välityspalvelinmääritys
Molemmat kirjastot tukevat VinaProxy-hallintapaneelisi standardeja http://user:pass@ip:port -URL-osoitteita:
| HTTP-asiakas | Paketti | Suositeltu koodikatkelma |
|---|---|---|
| Axios | npm i https-proxy-agent | axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false }) |
Natiivi 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' }) } }) |
Yhteysvarannon ja aikakatkaisujen parhaat käytännöt Node.js:ssä
- Aseta Axiosissa aina
proxy: falseyhdessähttpsAgent-asetuksen kanssa, jotta Axios jättää huomiotta ristiriitaiset järjestelmänHTTP_PROXY-ympäristömuuttujat - Luo
HttpsProxyAgent- taiProxyAgent-ilmentymä vain kerran välityspalvelimen IP-osoitetta kohden silmukan ulkopuolella, jotta voit uudelleenkäyttää pysyviä keep-alive-socketeja - Vie VinaProxy-välityspalvelinluettelosi suoraan JSON-taulukkona käyttämällä työkaluamme Proxy Format Converter
Vaihe vaiheelta
- 1
Asenna https-proxy-agent (tai undici)
Suorita
npm install axios https-proxy-agentNode.js-projektissasi. - 2
Luo HttpsProxyAgent-ilmentymä
Alusta
const agent = new HttpsProxyAgent('http://user:pass@ip:port');käyttäen VinaProxy-tunnuksiasi. - 3
Välitä httpsAgent ja proxy: false Axiosille
Kutsu
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Varmista lähtevä IP-osoite
Kirjaa
res.datalokiin vahvistaaksesi, että vastaus kulki dedikoidun välityspalvelimesi IP-osoitteen kautta.
Usein kysytyt kysymykset
Miksi Axiosin oletusasetus `proxy: { host, port, auth }` epäonnistuu HTTPS-URL-osoitteissa?
Axiosin sisäänrakennettu välityspalvelinmääritys lähettää tavallisen HTTP-pyynnön sen sijaan, että se avaisi HTTP CONNECT TLS -tunnelin. Ongelma korjaantuu käyttämällä asetusta httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') yhdessä asetuksen proxy: false kanssa.
Miten käytän välityspalvelinta natiivin `fetch()`-funktion kanssa Node.js 18/20/22 -versioissa?
Tuo ProxyAgent paketista undici ja välitä { dispatcher: new ProxyAgent('http://user:pass@ip:port') } fetch()-funktion valintaobjektissa.
Voinko muuntaa välityspalvelinluetteloni JSON-muotoon Node.js:ää varten?
Kyllä – liitä ip:port:user:pass -rivisi ilmaiseen työkaluume Proxy Format Converter ja valitse tulosteeksi JSON.
Tehosta Node.js-taustajärjestelmiäsi ja kaapimiasi staattisilla IP-osoitteilla
Heti käyttövalmiit, rajattomat Dedicated IPv4- ja Static ISP -välityspalvelimet 7 maassa.
Osta Node.js-välityspalvelimia