🖥 Грядущее видео про высоконагруженные API получается большим, поэтому пока оно в монтаже, закину очередной перевод поста от Alex Xu с LinkedIn - на этот раз про разницу разных проксей и шлюзов.
Forward Proxy, Reverse Proxy и API Gateway: в чём разница?Их постоянно путают - все трое стоят между клиентом и сервером. Реальная разница в том, чью сторону они представляют и какую проблему решают.
➡️
Forward proxy (прямой прокси) стоит рядом с
клиентом. Твой ноутбук отправляет запрос, прокси пересылает его наружу, и получатель никогда не видит ваш настоящий IPшник. В корпоративных сетях его используют, чтобы применять единые политики, блокировать сайты и кешировать трафик.
⬅️
Reverse proxy (обратный прокси) стоит рядом с
сервером. Клиент понятия не имеет, сколько машин скрывается за ним. Прокси решает, кто обработает запрос, терминирует TLS и держит твой бэк вне публичного интернета. Здесь обычно используют NGINX и HAProxy, как правило, в паре с балансировщиком нагрузки перед ними.
🛜
API gateway (API-шлюз) - это обратный прокси, который делает уже чуть больше, чем просто маршрутизирует трафик. Он также берёт на себя аутентификацию, ограничение частоты запросов (rate limits), API-ключи, версионирование и преобразование запросов. Без него каждому микросервису пришлось бы реализовывать собственную версию валидации, логики троттлинга и логирования запросов.
Forward proxy представляет клиента, reverse proxy представляет сервер, а API gateway - это то, что вы добавляете, когда десяти сервисам нужно единообразно применять одни и те же правила аутентификации и ограничения частоты запросов.
В большинстве реальных систем все трое работают на разных уровнях. Forward proxy фильтрует исходящий трафик, reverse proxy стоит перед серверами приложений, а API gateway располагается перед апишками, чтобы применять политики до того, как запросы дойдут до них.
📹
Видос про разные виды прокси у нас, кстати, имеется, если кто хочет вспомнить (и
квиз на Компе 🖥, естественно, тоже).