Я не специалист по сетям, но мне интересно, можно ли создать такую схему с помощью nginx? Основная цель - скрыть реальный IP-адрес клиента за уровнем прокси, где каждый прокси-узел имеет свой собственный IP-адрес и балансирует запросы балансировщика нагрузки (LB) с правилом «циклического перебора». Клиент - это какое-то приложение в моем случае, и я хочу. Желаемый сценарий следующий:
Клиент (приложение) делает http-запрос на some.api.com, LB перехватывает запрос и направляет его на один из узлов (например, прокси 1), прокси 1 получает запрос и повторно отправляет его на some.api.com и отправляет обратно ответ. При таком подходе я хочу избежать ограничений скорости, которые существуют на some.api.com. Возможно ли это сделать?
Такая схема называется прямым проксированием - проксированием исходящих запросов, в отличие от обратного проксирования, которое выполняет проксирование входящих запросов. Это возможно и легко сделать, однако в контексте ограничения скорости есть как минимум 3 аргумента против этого: два технических и один политический.
Большинство ограничений скорости применяются по ключу API, а не по IP-адресу (хотя ограничения по скорости IP - это обычная защита низкого уровня). Если вы используете аутентифицированный API, ваши запросы будут агрегироваться вместе независимо от IP.
Общедоступных IP-адресов мало, а трансляция сетевых адресов NAT - обычное дело. Вы можете создать схему балансировки нагрузки прямого прокси-сервера только для того, чтобы обнаружить, что ваши прокси-серверы подключены к NAT - все с учетом общего клиентского IP-адреса для исходящих запросов - какой-то частью нисходящей инфраструктуры
Проблема политики - не нарушать ограничения скорости провайдера. Если у вас есть бизнес-потребность в дополнительных возможностях, поговорите с поставщиком и заплатите ему за это, или, если вы не можете себе этого позволить, объясните это и выработайте с ним какое-то соглашение.