របៀបដំឡើង Proxy ក្នុង Node.js (Axios & Native Fetch)
Updated:
ជម្រើស proxy: { host, port } ភ្ជាប់មកជាមួយរបស់ Axios ដំណើរការមិនជោគជ័យលើគោលដៅ https:// ទេ ពីព្រោះវាមិនបានបើក HTTP CONNECT tunnel ឡើយ។ ដើម្បីបញ្ជូនសំណើ Node.js និង TypeScript យ៉ាងរលូនតាមរយៈ HTTP(S) proxy ដែលមានការផ្ទៀងផ្ទាត់របស់ VinaProxy សូមបញ្ជូន HttpsProxyAgent (https-proxy-agent) ទៅកាន់ Axios ឬ dispatcher undici.ProxyAgent ទៅកាន់ fetch() ដើមរបស់ Node។
new HttpsProxyAgent('http://user:pass@ip:port')- 1 IP40,000₫
- 5+ IP35,000₫
- 10+ IP25,000₫
- 20+ IP25,000₫
- 50+ IP25,000₫
- 100+ IP25,000₫
- 200+ IP25,000₫
- 500+ IP25,000₫
- 1000+ IP22,000₫
- 2000+ IP20,000₫
- 1 IP40,000₫
- 5+ IP35,000₫
- 10+ IP25,000₫
- 20+ IP25,000₫
- 50+ IP25,000₫
- 100+ IP25,000₫
- 200+ IP25,000₫
- 500+ IP25,000₫
- 1000+ IP22,000₫
- 2000+ IP20,000₫
ការកំណត់រចនាសម្ព័ន្ធ proxy រវាង Axios និង fetch() ដើមរបស់ Node.js
បណ្ណាល័យទាំងពីរទទួលយក URL ទម្រង់ស្តង់ដារ http://user:pass@ip:port ពីផ្ទាំងគ្រប់គ្រង VinaProxy របស់អ្នក៖
| HTTP Client | Package | កូដគំរូដែលណែនាំ |
|---|---|---|
| Axios | npm i https-proxy-agent | axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false }) |
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' }) } }) |
ការអនុវត្តល្អបំផុតសម្រាប់ Connection pooling និង timeout ក្នុង Node.js
- ត្រូវកំណត់
proxy: falseជានិច្ចរួមជាមួយhttpsAgentក្នុង Axios ដើម្បីឱ្យ Axios មើលរំលងអថេរបរិស្ថានHTTP_PROXYរបស់ប្រព័ន្ធដែលជាន់គ្នា - បង្កើត instance នៃ
HttpsProxyAgentឬProxyAgentម្តងក្នុងមួយ proxy IP នៅខាងក្រៅ loop របស់អ្នក ដើម្បីប្រើប្រាស់ persistent keep-alive socket ឡើងវិញ - នាំចេញបញ្ជី proxy VinaProxy របស់អ្នកជាទម្រង់ JSON array ដោយផ្ទាល់ដោយប្រើ Proxy Format Converter របស់យើង
មួយជំហានម្តងៗ
- 1
ដំឡើង https-proxy-agent (ឬ undici)
ដំណើរការ
npm install axios https-proxy-agentនៅក្នុងគម្រោង Node.js របស់អ្នក។ - 2
បង្កើត instance របស់ 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 ចេញក្រៅ (Exit IP)
កត់ត្រា
res.dataក្នុង log ដើម្បីបញ្ជាក់ថាការឆ្លើយតបបានឆ្លងកាត់ IP proxy ផ្តាច់មុខរបស់អ្នក។
សំណួរដែលសួរញឹកញាប់
ហេតុអ្វីបានជា `proxy: { host, port, auth }` លំនាំដើមរបស់ Axios ដំណើរការមិនជោគជ័យលើ URL ប្រភេទ HTTPS?
ការកំណត់រចនាសម្ព័ន្ធ proxy ភ្ជាប់មកជាមួយរបស់ Axios ផ្ញើសំណើជា HTTP ធម្មតា ជំនួសឱ្យការបើក TLS tunnel តាមរយៈ HTTP CONNECT។ ការប្រើប្រាស់ httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') ជាមួយ proxy: false នឹងដោះស្រាយបញ្ហានេះ។
តើខ្ញុំអាចប្រើ proxy ជាមួយ `fetch()` ដើមក្នុង Node.js 18/20/22 យ៉ាងដូចម្តេច?
នាំចូល ProxyAgent ពី undici ហើយបញ្ជូន { dispatcher: new ProxyAgent('http://user:pass@ip:port') } ក្នុង object នៃជម្រើស fetch()។
តើខ្ញុំអាចបំប្លែងបញ្ជី proxy របស់ខ្ញុំទៅជា JSON សម្រាប់ Node.js បានទេ?
បាន—គ្រាន់តែបិទភ្ជាប់បន្ទាត់ ip:port:user:pass របស់អ្នកទៅក្នុង Proxy Format Converter ឥតគិតថ្លៃរបស់យើង ហើយជ្រើសរើសលទ្ធផលជា JSON។
ពង្រឹង backend និង scraper លើ Node.js របស់អ្នកជាមួយ static IP
Proxy ប្រភេទ Dedicated IPv4 និង Static ISP មិនកំណត់ទិន្នន័យភ្លាមៗនៅទូទាំង 7 ប្រទេស។
ទិញ Node.js Proxy