Как настроить прокси в 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().
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
Обе библиотеки поддерживают стандартный формат URL 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в корневом каталоге проекта. - 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 URL?
Встроенный механизм 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
Безлимитные приватные IPv4 и статические ISP-прокси с мгновенной активацией в 7 локациях.
Купить прокси для Node.js