Предполагая, что я использую фреймворк, такой как Flask, для обслуживания запросов, я понимаю, что веб-сервер обрабатывает запросы к файлам stati c и направляет любые запросы на выполнение программы на сервер приложений. Пример: nginx. Где в качестве сервера приложений может обрабатывать как stati c файлы, так и выполнение программ. Пример: gunicorn.
Имеет смысл иметь веб-сервер для обработки файлов stati c, кэширования, перенаправления запросов, балансировки нагрузки. Сначала запрос поступает на веб-сервер, и он знает, как обрабатывать его и перенаправлять любые выполнения программ на сервер приложений.
Однако в архитектурах, где мы используем оркестровку и контейнеризацию, то есть - существует кластер узлов каждый узел, на котором запущен контейнер - предположим, что в контейнере есть только сервер приложений (например, gunicorn), и запрос поступает на интерфейс управления / шлюз API (который имеет те же функции, что и веб-сервер), за исключением обслуживания файлов stati c ), перенаправляется на кластер узлов (который выполняет балансировку нагрузки), в конце концов запрос достигает узла, содержащего сервер приложений (пример: gunicorn), который обслуживает запрос.
Есть ли какое-либо преимущество наличия веб-сервера работает вдоль сервера приложений внутри такой конфигурации?
В azure играет ли роль шлюза API роль эквивалентного веб-сервера?