Раз тема про node, оставлю сюда же грабли соседних библиотек, чтобы не заводить отдельную.
axios поле proxy понимает по-своему и для https через туннель работает криво: он подставляет адрес посредника, но при этом ломает проверку сертификата на некоторых сборках. Рабочий порядок такой: proxy: false плюс отдельный агент.
import axios from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';
const agent = new HttpsProxyAgent('http://login:pass@193.0.2.44:8000');
const client = axios.create({
httpsAgent: agent,
httpAgent: agent,
proxy: false,
timeout: 20000,
});
```
Без proxy: false axios попробует применить обе настройки сразу, и запрос уйдёт в туннель внутри туннеля. Симптом узнаваемый: обрыв соединения без внятного сообщения, иногда через минуту после старта.
И второе, уже про нагрузку. У ProxyAgent есть поля connections и keepAliveTimeout. По умолчанию соединения переиспользуются, и на длинном прогоне это хорошо. Но если вы гоняете тысячи коротких запросов и видите рост памяти, ограничьте число соединений в агенте явно, иначе пул растёт вместе с очередью задач.