كيفية إعداد بروكسي في Node.js (Axios و Native Fetch)
آخر تحديث:
يفشل الخيار المدمج في Axios proxy: { host, port } عند الاتصال بالوجهات التي تبدأ بـ https:// لأنه لا ينشئ نفق HTTP CONNECT. لتوجيه طلبات Node.js و TypeScript بنظافة عبر بروكسيات HTTP(S) المعتمدة من VinaProxy، مرر HttpsProxyAgent (https-proxy-agent) إلى Axios أو موزع 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 ₫
مقارنة تكوين البروكسي بين Axios ودالة fetch() الأصلية في Node.js
تقبل كلا الحزمتين الروابط القياسية بصيغة http://user:pass@ip:port المستخرجة من لوحة تحكم VinaProxy:
| عميل HTTP | حزمة NPM | عينة الكود الموصى بها |
|---|---|---|
| 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 حتى يتجاهل متغير البيئةHTTP_PROXYالخاص بالنظام - أنشئ نسخة من
HttpsProxyAgentأوProxyAgentمرة واحدة لكل عنوان IP خارج الحلقات التكرارية لإعادة استخدام مقابس TCP 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 البروكسي المخصص.
الأسئلة الشائعة
لماذا تفشل تهيئة Axios الافتراضية proxy: { host, port, auth } مع روابط HTTPS؟
يرسل التكوين الافتراضي لـ Axios طلباً بسيطاً عبر HTTP بدلاً من إنشاء نفق TLS بواسطة HTTP CONNECT. يؤدي استخدام 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.
عزز كفاءة خوادم وأدوات كشط Node.js بعناوين IP ثابتة ومخصصة
بروكسيات Dedicated IPv4 و Static ISP غير محدودة مع تسليم فوري في 7 دول.
شراء بروكسيات Node.js