Нотатка · Проксі
Чому HAProxy замало для змішаного пулу проксі
План здавався нормальним: ranker формує active pool, HAProxy підхоплює backend через config або Runtime API, я задоволений і йду далі 😎
Але пул змішаний: HTTP, HTTPS, SOCKS4, SOCKS5, ще й credentials подекуди є. HAProxy як TCP backend не виконає SOCKS handshake і не дістане пароль за credential_ref.
От і приїхали 😬
Між redsocks та upstream довелось додати protocol-aware relay:
VM → iptables → redsocks :12345
→ egress_relay :12000
→ HTTP / HTTPS / SOCKS4 / SOCKS5 upstream
→ destinationПеред новим з’єднанням relay перевіряє active snapshot, але не частіше ніж раз на три секунди. Потім вибирає кандидата, виконує правильний handshake і тільки тоді підставляє credentials. Restart або reload не потрібен ⚙️
Є чесне обмеження: у живому active pool поки один агрегований HAProxy endpoint. Тому показати реальний cooldown між двома direct candidates на цьому стенді я не можу. Логіка покрита unit-тестами, а HAProxy failover окремо перевірений на восьми LXC.
Отака вийшла проста задача «автоматично оновлювати список проксі» 😅