Перейти до вмісту

Як використовувати proxy з Node.js Axios: повний посібник

TL;DR

Налаштуйте GProxy proxy з Node.js Axios для HTTP запитів. Охоплює proxy конфігурацію, HTTPS підтримку, ротаційні патерни та обробку помилок.

Мова: JavaScript

Що вам знадобиться

  • Встановлено Node.js 16+
  • Встановлено Axios (npm install axios)
  • Обліковий запис GProxy з активним тарифним планом proxy
  • Базові знання Node.js та async/await

Покрокове налаштування

1

Встановлення Axios

Встановіть Axios та опціональну підтримку SOCKS5

npm install axios
# For SOCKS5 support:
npm install socks-proxy-agent
2

Налаштування HTTP proxy

Додайте GProxy proxy до конфігурації запиту Axios

const axios = require('axios');

const response = await axios.get('https://httpbin.org/ip', {
  proxy: {
    host: 'proxy.gproxy.net',
    port: 1000,
    auth: { username: 'YOUR_USER', password: 'YOUR_PASS' }
  }
});
console.log(response.data);
3

Налаштування SOCKS5 proxy

Використовуйте socks-proxy-agent для підтримки SOCKS5

const { SocksProxyAgent } = require('socks-proxy-agent');

const agent = new SocksProxyAgent('socks5://USER:PASS@proxy.gproxy.net:1001');
const response = await axios.get('https://httpbin.org/ip', {
  httpsAgent: agent, httpAgent: agent
});
4

Створення клієнта для повторного використання

Створіть екземпляр Axios із налаштуваннями proxy за замовчуванням

const client = axios.create({
  proxy: {
    host: 'proxy.gproxy.net',
    port: 1000,
    auth: { username: 'YOUR_USER', password: 'YOUR_PASS' }
  },
  timeout: 30000
});

const data = await client.get('https://example.com');
5

Додавання interceptor для повторних спроб

Обробляйте помилки proxy з автоматичним повтором запиту

client.interceptors.response.use(
  response => response,
  async error => {
    if (error.response?.status === 407 || error.code === 'ECONNRESET') {
      return client.request(error.config); // retry
    }
    throw error;
  }
);
6

Тестування налаштувань

Перевірте, чи правильно працює маршрутизація через proxy

const res = await client.get('https://httpbin.org/ip');
console.log('Proxy IP:', res.data.origin);

Приклади коду

Базовий Axios з GProxy · javascript
const axios = require('axios');

async function main() {
  const response = await axios.get('https://httpbin.org/ip', {
    proxy: {
      host: 'proxy.gproxy.net',
      port: 1000,
      auth: {
        username: 'YOUR_USER',
        password: 'YOUR_PASS'
      }
    },
    timeout: 30000
  });

  console.log('Your proxy IP:', response.data.origin);
}

main().catch(console.error);
Одночасні запити з обмеженням швидкості (Rate Limiting) · javascript
const axios = require('axios');
const pLimit = require('p-limit');

const limit = pLimit(10); // max 10 concurrent

const client = axios.create({
  proxy: {
    host: 'proxy.gproxy.net',
    port: 1000,
    auth: { username: 'USER', password: 'PASS' }
  },
  timeout: 30000
});

const urls = Array.from({ length: 100 }, (_, i) =>
  `https://example.com/page/${i + 1}`);

const results = await Promise.all(
  urls.map(url => limit(() =>
    client.get(url).then(r => ({ url, status: r.status }))
      .catch(e => ({ url, error: e.message }))
  ))
);

console.log(`Success: ${results.filter(r => r.status).length}`);
console.log(`Failed: ${results.filter(r => r.error).length}`);
Запити з гео-таргетингом · javascript
const axios = require('axios');

async function fetchFromCountry(url, country) {
  const response = await axios.get(url, {
    proxy: {
      host: 'proxy.gproxy.net',
      port: 1000,
      auth: {
        username: `USER-country-${country}`,
        password: 'PASS'
      }
    }
  });
  return { country, data: response.data };
}

const countries = ['us', 'de', 'gb', 'jp', 'br'];
const results = await Promise.all(
  countries.map(c => fetchFromCountry('https://httpbin.org/ip', c))
);

results.forEach(r =>
  console.log(`${r.country}: ${r.data.origin}`));

Чому варто використовувати proxy з Axios?

Axios — це найпопулярніший HTTP клієнт для Node.js та браузерів, який має понад 100 мільйонів завантажень npm щотижня. Додавання GProxy proxy до Axios дозволяє реалізувати IP ротацію для веб-скрапінгу, доступ до API з різних локацій та анонімну обробку запитів. Понад 10M+ резидентних IP GProxy та покриття у 150+ країнах безперешкодно інтегруються з конфігурацією proxy в Axios.

Базова конфігурація Proxy

Axios підтримує HTTP proxy через вбудовану опцію конфігурації proxy. Передайте proxy host, port та облікові дані автентифікації безпосередньо в конфігурації запиту або як значення за замовчуванням. Для HTTPS цілей через HTTP proxy, Axios автоматично обробляє CONNECT тунель.

Підтримка SOCKS5 Proxy

Axios не підтримує SOCKS5 нативно, але ви можете додати цю підтримку за допомогою пакета socks-proxy-agent. Створіть SOCKS5 агент і передайте його як httpsAgent у вашій конфігурації Axios. Це працює з SOCKS5 ендпоїнтами GProxy.

Інтерцептори запитів для логіки Proxy

Інтерцептори Axios дозволяють додавати логіку ротації proxy, повторні спроби при збоях та логування. Додайте інтерцептор запиту для динамічного призначення proxy, а інтерцептор відповіді — для обробки помилок proxy та повторної спроби з іншою IP.

Паралельні запити

Асинхронна природа Node.js робить її ідеальною для паралельних запитів через proxy. Використовуйте Promise.all() або p-limit для контролю паралелізму. Кожен запит через backconnect ендпоїнт GProxy отримує унікальну IP, тому паралельні запити ротуються природним чином.

Найкращі практики обробки помилок

Помилки, специфічні для proxy, потребують спеціальної обробки: 407 означає помилку автентифікації, ECONNREFUSED означає, що proxy недоступний, а ETIMEDOUT означає, що proxy або ціль працюють повільно. Встановіть відповідні таймаути та впровадьте логіку повторних спроб з експоненціальною затримкою для надійності у production.

Сценарії використання

API Data Collection

Збирайте дані з API, які обмежують кількість запитів на одну IP, використовуючи ротаційні проксі.

Price Monitoring Services

Створюйте мікросервіси для відстеження цін, які опитують ритейлерів з різних локацій.

Webhook Testing

Надсилайте тестові webhooks з різних IP, щоб перевірити фільтри безпеки вашого додатка.

Microservice Testing

Тестуйте власні API з зовнішніх IP, щоб перевірити правила rate limiting та geo-blocking.

Поради професіоналів
Створіть виділений екземпляр Axios з налаштуваннями proxy за замовчуванням для чистого коду. Використовуйте p-limit для контролю паралелізму та уникнення перевантаження цільових серверів. Додайте перехоплювачі відповідей для автоматичного повтору при помилках proxy. Встановіть розумні таймаути (30s) для коректної обробки повільних proxy з'єднань.

FAQ

Чи підтримує Axios SOCKS5 нативно? +
Ні, але ви можете використовувати пакет socks-proxy-agent, щоб додати підтримку SOCKS5. Передайте агент як httpsAgent у конфігурації Axios.
Як обробляти помилки автентифікації proxy? +
Відловлюйте статус-коди 407 у перехоплювачах відповідей. Перевірте свої облікові дані GProxy та переконайтеся, що ваш тарифний план активний.
Чи можу я ротувати проксі для кожного запиту? +
Так. Backconnect-ендпоінт GProxy призначає нову IP для кожного з'єднання, тому кожен запит Axios автоматично отримує іншу IP.
Чи працює конфігурація proxy у браузерах? +
Ні, конфігурація proxy в Axios працює лише в Node.js. Запити в браузері проксіюються через налаштування системного проксі або розширення.

Готові спробувати?

Почніть з GProxy за хвилини — резидентні проксі від $0.85/GB, IPv6 від $0.03/проксі, оплата за використання.

Інші інтеграції

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.