Понимание каждого компонента архитектуры веб-приложения - PullRequest
0 голосов
/ 07 февраля 2019

Вот сценарий для системы, в которой я пытаюсь понять, что к чему:

Я - Джо, начинающий программист, и я сломлен.У меня есть приложение Flask и одна физическая машина.Поскольку я не в состоянии работать, я не могу позволить себе другую машину для каждой части моей системы, поэтому веб-сервер, приложение и база данных все живут на одной моей машине.

Я никогда раньше не развертывал приложение, но язнать, что сервер может ссылаться на машину или программное обеспечение.С этого момента, давайте назовем физическую машину Rack .Я загрузил экземпляр MongoDB на свою машину и знаю, что это Сервер баз данных .Для обработки запросов API мне нужно что-то в стойке, которое будет обрабатывать запросы HTTP / S, поэтому я устанавливаю и запускаю на нем экземпляр NGINX, и я знаю, что это веб-сервер .Однако мой веб-сервер не знает, как запустить приложение, поэтому я провожу некоторые исследования и изучаю WSGI и выясняю, что мне нужен еще один компонент.Поэтому я устанавливаю и запускаю экземпляр Gunicorn и знаю, что это WSGI Server .

На данный момент у меня есть стойка, в которой размещается веб-сервер для обработки вызовов API (на самом деле просто действует как обратный прокси-сервер и отправляет запросы на сервер WSGI), сервер WSGI, который обслуживает динамический контент измое приложение и сервер базы данных, на котором хранится информация о клиенте, используемая приложением.

Я думаю, что у меня все в порядке, а потом мой друг спрашивает: "Где ваш Сервер приложений ?"

Есть ли сервер приложений в этой конфигурации?Нужен ли мне один?

1 Ответ

0 голосов
/ 07 февраля 2019

Любая базовая серверная архитектура имеет три уровня.На одном конце находится веб-сервер , который выполняет запросы от клиентов.Другой конец - сервер базы данных , в котором находятся данные.

Между этими двумя находится сервер приложений .Он состоит из бизнес-логики, необходимой для взаимодействия с веб-сервером для получения запроса, а затем с сервером базы данных для выполнения операций.

В вашей конфигурации приложение WSGI serve / Flask представляет собой сервер приложений .

Большинство серверов приложений могут работать как веб-серверы.

...