نحوه تنظیم پروکسی در Node.js (Axios و Fetch بومی)
Updated:
گزینه داخلی proxy: { host, port } در Axios برای مقاصد 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 آیپی₫۴۰٬۰۰۰
- +5 آیپی₫۳۵٬۰۰۰
- +10 آیپی₫۲۵٬۰۰۰
- +20 آیپی₫۲۵٬۰۰۰
- +50 آیپی₫۲۵٬۰۰۰
- +100 آیپی₫۲۵٬۰۰۰
- +200 آیپی₫۲۵٬۰۰۰
- +500 آیپی₫۲۵٬۰۰۰
- +1000 آیپی₫۲۲٬۰۰۰
- +2000 آیپی₫۲۰٬۰۰۰
- 1 آیپی₫۴۰٬۰۰۰
- +5 آیپی₫۳۵٬۰۰۰
- +10 آیپی₫۲۵٬۰۰۰
- +20 آیپی₫۲۵٬۰۰۰
- +50 آیپی₫۲۵٬۰۰۰
- +100 آیپی₫۲۵٬۰۰۰
- +200 آیپی₫۲۵٬۰۰۰
- +500 آیپی₫۲۵٬۰۰۰
- +1000 آیپی₫۲۲٬۰۰۰
- +2000 آیپی₫۲۰٬۰۰۰
مقایسه پیکربندی پروکسی در Axios و fetch() بومی Node.js
هر دو کتابخانه URLهای استاندارد http://user:pass@ip:port را از داشبورد VinaProxy شما میپذیرند:
| کلاینت HTTP | پکیج | قطعه کد پیشنهادی |
|---|---|---|
| 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' }) } }) |
بهترین روشهای Connection Pooling و تایماوت در Node.js
- همیشه در کنار
httpsAgentمقدارproxy: falseرا نیز در Axios تنظیم کنید تا Axios متغیرهای محیطی تداخلیHTTP_PROXYسیستم را نادیده بگیرد - برای هر IP پروکسی،
HttpsProxyAgentیاProxyAgentرا خارج از حلقه خود یکبار مقداردهی کنید تا سوکتهای پایدار 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 پروکسی اختصاصی شما عبور کرده است.
پرسشهای متداول
چرا تنظیمات پیشفرض `proxy: { host, port, auth }` در Axios برای آدرسهای HTTPS کار نمیکند؟
تنظیمات داخلی پروکسی در Axios به جای ایجاد تونل امن TLS با HTTP CONNECT، یک درخواست ساده HTTP ارسال میکند. استفاده از httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') به همراه proxy: false این مشکل را رفع میکند.
چگونه در Node.js 18/20/22 از پروکسی با `fetch()` بومی استفاده کنم؟
کلاس ProxyAgent را از undici ایمپورت کرده و مقدار { dispatcher: new ProxyAgent('http://user:pass@ip:port') } را در شیء تنظیمات fetch() ارسال کنید.
آیا میتوانم لیست پروکسیهایم را برای Node.js به JSON تبدیل کنم؟
بله؛ خطوط ip:port:user:pass خود را در مبدل فرمت پروکسی رایگان ما جایگذاری کرده و خروجی JSON را انتخاب کنید.
تقویت بکاندها و اسکریپرهای Node.js با IPهای ثابت
پروکسیهای اختصاصی نامحدود IPv4 و ISP ثابت آنی در 7 کشور.
خرید پروکسی Node.js