Я надеялся, что кто-нибудь сможет объяснить, как настроить многоуровневое веб-приложение. Существует уровень базы данных, уровень приложений, уровень веб-сервера, а затем уровень клиента. Я не совсем уверен, как разделить уровень приложения и уровень веб-сервера, поскольку уровень приложения будет находиться в частной подсети. Я бы попросил клиента отправить запрос непосредственно на сервер приложений, но требуется частная сеть. Также требуется, чтобы сервер приложений был отделен от веб-сервера.
Единственная идея, которая у меня была, заключалась в том, чтобы обслуживать контент на веб-сервере, а затем клиент будет отправлять все запросы на тот же веб-сервер через другой порт. Как и в случае с портом 3000, если запрос перехвачен на этом порту, приложение узла, использующее Express, перенаправит запрос на уровень приложений, поскольку веб-сервер может общаться с сервером приложений.
Я установил небольшое доказательство концепции, делая это. Веб-сервер обслуживает контент, затем у меня есть еще одно экспресс-приложение для прослушивания порта 3000, клиент отправляет запрос на порт 3000, а затем просто отправляет то же самое обратно на сервер приложений.
Это моя текущая настройка с веб-серверами, на которых размещены два сервера. Один для обслуживания интерфейса на порту 80 и один для приема запросов на порту 3000. Сервер, прослушивающий порт 3000, перенаправляет все запросы на сервер приложений ALB (по сути, это копия всех тех же маршрутов на сервере приложений, но он просто перенаправляет запросы вместо выполнения действия). Но есть ли способ избежать этого дополнительного прыжка посередине? Избавиться от дополнительного сервера, который прослушивает 3000, не раскрывая внутренний ALB?