Зачем нам нужен веб-сервер вместе с сервером приложений в организованной контейнерной архитектуре? - PullRequest
0 голосов
/ 26 февраля 2020

Предполагая, что я использую фреймворк, такой как Flask, для обслуживания запросов, я понимаю, что веб-сервер обрабатывает запросы к файлам stati c и направляет любые запросы на выполнение программы на сервер приложений. Пример: nginx. Где в качестве сервера приложений может обрабатывать как stati c файлы, так и выполнение программ. Пример: gunicorn.

Имеет смысл иметь веб-сервер для обработки файлов stati c, кэширования, перенаправления запросов, балансировки нагрузки. Сначала запрос поступает на веб-сервер, и он знает, как обрабатывать его и перенаправлять любые выполнения программ на сервер приложений.

Однако в архитектурах, где мы используем оркестровку и контейнеризацию, то есть - существует кластер узлов каждый узел, на котором запущен контейнер - предположим, что в контейнере есть только сервер приложений (например, gunicorn), и запрос поступает на интерфейс управления / шлюз API (который имеет те же функции, что и веб-сервер), за исключением обслуживания файлов stati c ), перенаправляется на кластер узлов (который выполняет балансировку нагрузки), в конце концов запрос достигает узла, содержащего сервер приложений (пример: gunicorn), который обслуживает запрос.

Есть ли какое-либо преимущество наличия веб-сервера работает вдоль сервера приложений внутри такой конфигурации?

В azure играет ли роль шлюза API роль эквивалентного веб-сервера?

1 Ответ

1 голос
/ 26 февраля 2020

Это зависит. Обычно в шлюзе API есть некоторые прокси / логи маршрутизации c (например, перезапись URL), поэтому, вероятно, именно поэтому вы можете разместить сервер приложений и веб-сервер внутри контейнера.

В Azure, API Management - это полностью управляемый API-шлюз, который позволяет реализовать кэширование, маршрутизацию, безопасность, управление версиями API и т. Д.

Дополнительная информация:

https://microservices.io/patterns/apigateway.html

https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/direct-client-to-microservice-communication-versus-the-api-gateway-pattern

...