API-шлюз против обратного прокси-сервера

Чтобы иметь дело с архитектурой микросервиса, он часто используется рядом с обратным прокси (например, nginx или apache httpd), а для перекрестных проблем - реализация API-шлюз шаблон используется. Иногда Reverse proxy выполняет работу шлюза API.
Будет хорошо видеть четкие различия между этими двумя подходами. Похоже, что потенциальное преимущество использования шлюза API вызывает множественные микросервисы и агрегирование результатов. Все остальные обязанности шлюза API могут быть реализованы с использованием обратного прокси. Такие как:

  • Аутентификация (это можно сделать с помощью скриптов LUX Nginx);
  • Безопасность транспорта. Это сама задача обратного прокси;
  • Балансировка нагрузки
  • ....

Итак, на основании этого есть несколько вопросов:

  • Имеет ли смысл использовать API-шлюз и обратный прокси-сервер одновременно (в качестве примера request- > Api gateway- > обратный прокси (nginx) → конкретный mictoservice)? В каких случаях?
  • Какие другие отличия могут быть реализованы с использованием шлюза API и не могут быть реализованы с помощью обратного прокси и наоборот?
31
задан user1459144 02 марта '16 в 22:44
источник поделиться
2 ответов

Легче думать о них, если вы понимаете, что они не являются взаимоисключающими. Подумайте о шлюзе API как о конкретной реализации обратного прокси-сервера определенного типа.

Что касается ваших вопросов, то нет ничего необычного в том, что они используются совместно, когда шлюз API рассматривается как уровень приложения, который находится за обратным прокси-сервером для балансировки нагрузки и проверки работоспособности. Примером может быть что-то вроде сэндвич-архитектуры WAF в том, что ваш веб-брандмауэр/API-шлюз веб-приложений зажат обратными прокси-уровнями, один для самого WAF, а другой для отдельных микросервисов, с которыми он разговаривает.

Что касается различий, они очень похожи. Это просто номенклатура. Когда вы берете базовую настройку обратного прокси-сервера и начинаете запирать больше таких объектов, как аутентификация, ограничение скорости, динамические обновления конфигурации и обнаружение служб, люди чаще называют это шлюз API.

26
ответ дан Justin Talbott 17 мая '16 в 4:04
источник поделиться

Я полагаю, API Gateway - это обратный прокси-сервер, который можно динамически настраивать через API и, возможно, через пользовательский интерфейс, в то время как традиционный обратный прокси (например, Nginx, HAProxy или Apache) настраивается через файл конфигурации и должен перезапускаться при изменении конфигурации. Таким образом, API Gateway следует использовать, когда правила маршрутизации или другая конфигурация часто меняются. На ваши вопросы:

  • Это имеет смысл, если каждый компонент этой последовательности служит своей цели.
  • Различия не указаны в списке функций, а в том, как применяются изменения конфигурации.

Кроме того, API Gateway часто предоставляется в виде SAAS, например Apigee или Tyk.

Кроме того, здесь мой учебник о том, как создать простой API-шлюз с Node.js https://memz.co/api-gateway-microservices-docker-node-js/

Надеюсь, что это поможет.

10
ответ дан Andrey Chausenko 06 апр. '16 в 3:51
источник поделиться

Другие вопросы по меткам или Задайте вопрос