8

我正在用 dokku 部署一个节点应用程序(使用 express js)。我的应用程序由 2 个 express js 应用程序组成,它们侦听两个不同的端口。一个是主应用程序,另一个是kue的 Web 接口- 一个简单的 node js 作业队列。当我部署应用程序时,我需要运行这两个应用程序并在端口 80 上访问主应用程序,并在其他端口(最好是 express 应用程序侦听的端口)上访问 kue 应用程序。

我已将这两个应用程序都放在 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 (它支持所有进程类型:web、worker 等)。

我已经为第二个应用程序的进程类型尝试了“web”和“worker”。

问题

在部署时,Dokku 只是使 procfile 中指定的最后一个应用程序(在本例中为 kueUi)可通过端口 80 访问,并且似乎无法访问第一个指定的应用程序。我尝试通过第一个应用程序侦听的端口访问,但这不起作用。

我想它需要一些 nginx 配置才能将某个端口上的请求转发到应用程序侦听的 docker 容器中的那个端口。

我需要它如何

1. http://example.com - reaches my main app
2. http://example.com:5000 - reaches the second app (Kue UI)

找不到有关如何实现此目的的任何文档。任何帮助深表感谢!

4

2 回答 2

2

这可以通过使用https://github.com/statianzo/dokku-shoremanhttps://github.com/statianzo/dokku-supervisord一起破解,但您需要手动确保没有端口冲突独库主机。

https://github.com/progrium/dokku/issues/732解决后,您将能够将第二个应用程序部署为工作程序,该工作程序将侦听由 docker 分配的端口。

于 2014-10-29T12:14:08.957 回答
0

我不确定我是否误解了问题,但找出这两个应用程序的端点可能会有所帮助?它是这样完成的:

dokku url [App #1]
dokku url [App #2]

如果您正在运行 nginx,则可能需要查看/opt/nginx/conf/nginx.conf.

于 2014-10-11T13:37:49.833 回答