Я развертываю приложение node (с экспресс-js) с помощью dokku. Мое приложение состоит из 2 экспресс-приложений js, которые прослушивают два разных порта. Одно из них является основным приложением, а другое — веб-интерфейсом для kue — простой очереди заданий для узла js. Когда я развертываю приложение, мне нужно запустить оба этих приложения и получить доступ к основному приложению через порт 80, а к одному через какой-либо другой порт (предпочтительно к порту, который прослушивает экспресс-приложение).
Я поместил оба этих приложения в Procfile, например:
web: server=thats-wow NODE_ENV=production node server/app.js
worker: node server/kueUi.js
Несколько процессов в procfile обрабатываются подключаемым модулем dokku-supervisord: https://github.com/statianzo/dokku-supervisord (Он поддерживает все типы процессов: веб, рабочий и т. д.).
Я пробовал как «веб», так и «рабочий» для типа процесса второго приложения.
Проблема
При развертывании Dokku просто делает последнее приложение, указанное в procfile (в данном случае kueUi), доступным через порт 80, и кажется, что нет никакого способа получить доступ к тому, которое указано первым. Я попытался получить доступ через порт, который слушает первое приложение, но это не сработало.
Я предполагаю, что ему нужна некоторая конфигурация nginx для пересылки запросов на определенный порт на этот порт в контейнере докеров, который прослушивает приложение.
Как мне это нужно
1. http://example.com - reaches my main app
2. http://example.com:5000 - reaches the second app (Kue UI)
Не удалось найти документацию о том, как этого добиться. Любая помощь высоко ценится!