Як налаштувати проксі в 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 до нативного Node fetch().
new HttpsProxyAgent('http://user:pass@ip:port')- 1 IP40 000 VND
- 5+ IP35 000 VND
- 10+ IP25 000 VND
- 20+ IP25 000 VND
- 50+ IP25 000 VND
- 100+ IP25 000 VND
- 200+ IP25 000 VND
- 500+ IP25 000 VND
- 1000+ IP22 000 VND
- 2000+ IP20 000 VND
- 1 IP40 000 VND
- 5+ IP35 000 VND
- 10+ IP25 000 VND
- 20+ IP25 000 VND
- 50+ IP25 000 VND
- 100+ IP25 000 VND
- 200+ IP25 000 VND
- 500+ IP25 000 VND
- 1000+ IP22 000 VND
- 2000+ IP20 000 VND
Налаштування проксі: 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 }) |
Нативний 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, щоб Axios ігнорував конфліктні системні змінні середовищаHTTP_PROXY - Створюйте екземпляр
HttpsProxyAgentабоProxyAgentодин раз для кожного IP проксі за межами циклу, щоб повторно використовувати постійні keep-alive сокети - Експортуйте свій список проксі VinaProxy безпосередньо у вигляді JSON-масиву за допомогою нашого Proxy Format Converter
Покроково
- 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 }` не працює з URL-адресами 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 у наш безкоштовний Proxy Format Converter і виберіть формат виводу JSON.
Підсильте бекенди та скрепери Node.js статичними IP
Миттєві безлімітні виділені IPv4 та статичні ISP проксі у 7 країнах.
Купити проксі для Node.js