我正在使用dokku部署节点应用程序(带快递js)。我的应用程序包含2个快速js应用程序,可以收听两个不同的端口。一个是主应用程序,另一个是 kue 的Web界面 - 节点js的简单作业队列。 当我部署应用程序时,我需要运行这两个应用程序并访问端口80上的主应用程序和其他端口上的kue(最好是快速应用程序侦听的端口)。
我已将这两个应用程序放在Procfile上,如:
web: server=thats-wow NODE_ENV=production node server/app.js
worker: node server/kueUi.js
proc文件的多个进程由dokku-supervisord插件处理:https://github.com/statianzo/dokku-supervisord(它支持所有进程类型:web,worker等)。
我已经尝试了两个' web'和'工人'对于第二个应用程序的流程类型。
问题
在部署时,Dokku只是通过端口80访问procfile中指定的最后一个应用程序(在本例中为kueUi),似乎无法访问首先指定的应用程序。 我尝试通过第一个应用程序收听的端口访问,但是那个没有用。
我想它需要一些nginx配置来将某个端口上的请求转发到应用程序监听的docker容器中的该端口。
我需要它
1. http://example.com - reaches my main app
2. http://example.com:5000 - reaches the second app (Kue UI)
无法找到有关如何实现此目标的任何文档。非常感谢任何帮助!
答案 0 :(得分:2)
可以使用https://github.com/statianzo/dokku-shoreman或https://github.com/statianzo/dokku-supervisord将其共同攻击,但您需要手动确保dokku主机上没有端口冲突。
解决https://github.com/progrium/dokku/issues/732后,您将能够将第二个应用程序部署为将侦听由docker分配的端口的工作程序。
答案 1 :(得分:0)
我不确定我是否误解了这个问题,但找出两个应用程序的端点可能会有所帮助?这是这样做的:
dokku url [App #1]
dokku url [App #2]
如果您正在运行nginx,则可能需要查看/opt/nginx/conf/nginx.conf
。