Я использую один сервер для размещения нескольких веб-приложений Node.js, которые распределены по нескольким доменам.Моя текущая практика - запускать сервер Express для каждого приложения на отдельном порту и запускать базовый сервер, который просто перенаправляет (перенаправляет) запросы на правильный порт / сервер Express.Это работает, но это означает, что мой базовый сервер маршрутизирует каждый отдельный HTTP-запрос (и перенаправляет его вручную), и что мои пользователи видят мои приложения как размещенные на [hostname.com]: 8000.
ПослеПосле небольшого исследования я обнаружил, что могу использовать http-proxy для своих потребностей в маршрутизации, но я все же хотел бы знать, есть ли лучший способ запуска нескольких серверов Express в одной системе.Вот как я планирую это сделать:
Каждое веб-приложение будет иметь свою собственную папку с полной структурой папок Express (app.js, маршруты, представления и т. Д.). Приложения будут сгруппированы по доменам,поэтому пример структуры папок будет такой:
hostname.com/
app.js
routes/
views/
...
app1/
app1.js
routes/
views/
...
app2
...
hostname2.com/
app.js
routes/
views/
...
Мне придется запускать каждый app.js отдельно с узлом (или с forever , который я сейчас использую), икаждому из них придется использовать свой порт внутри, а перенаправления между приложениями будут указывать на порт целевого приложения.
Итак, это мой текущий план.Каковы проблемы с этим, и какие ловушки я должен попытаться избежать?Самое главное, существует ли устоявшееся решение этой проблемы - проблема размещения нескольких веб-приложений в одной системе с Node.js / Express?
РЕДАКТИРОВАТЬ: я планирую в конечном итоге использоватьWebSockets и HTTPS, а также пропускная способность, которую может поддерживать моя установка, для меня не имеет большого значения - это сервер разработки (по крайней мере, на данный момент).Спасибо Дэвиду Эллису за то, что он поднял вопрос о WebSockets.
ВТОРОЕ РЕДАКТИРОВАНИЕ: Спасибо и EhevuTov, и Дэвиду Эллису за ответы, оба из которых очень помогли.Я все еще определяю общую структуру своего приложения, и похоже, что этот вопрос более подробно рассмотрен в этом вопросе StackOverflow
ТРЕТЬЕ РЕДАКТИРОВАНИЕ.опубликовать этот вопрос (хотя мне еще далеко).Проверьте этот файл в моем репозитории GitHub , который использует то, что я узнал из ответов на этот вопрос!