运行同端口ec2多节点应用
Run Multiple node application in same port ec2
我来自 java 背景,我开始使用节点 js,现在我很喜欢它。
在将其发布到 SO 之前,我已经阅读了与我的问题类似的其他主题。
我有 3 个不同的节点应用程序(应用程序 1、应用程序 2、应用程序 3)
通常,如果它在 java 中,我将在 tomcat 中部署三个应用程序,并且可以像这样在本地访问它们 localhost:8080/app1,localhost:8080/app2 等。
我在节点 js 中寻找类似的方法。我读过这个 thread
并在全球范围内安装了 express 并使用此代码
创建了一个名为 master.js 的脚本
var express = require('express'); var app = express();
app .use('/app1', require('./app1/server.js').app) .use('/app2',
require('./app2/server.js').app) .listen(8080);
但我得到
TypeError: Cannot read property 'handle' of undefined
由于我是 node 的新手,我不确定这个过程是否像本文中提到的设置代理等一样复杂 thread
基本上我正在寻找将我所有的应用程序部署在同一个端口并像 localhost:8080/app1, localhost:8080/app2
一样访问它们
我需要 nginx 和代理来实现这个吗?
同样在 ec2 实例中,我可以通过进入 app1 文件夹并键入节点 server.js 运行 我的节点应用程序,这样该应用程序将在端口 8080 中列出,但是当我按 ctrl c 执行其他操作时任务,它终止了应用程序。
您需要为每个应用使用一个变量,然后使用它。尝试:
var app1 = require('./app1/server.js').app
var app2 = require('./app2/server.js').app
app.use('/app1', app1).use('/app2', app2).listen(8080);
您不需要 nginx/proxy 来处理这个问题。据我所知,如果你的 app1|app2/server.js-s 是这样构建的,你的代码应该可以工作:
var express = require('express');
var app = express();
app.get('/hello', function() {...})
module.exports = {
app: app
}
现在您可以向 /app1/hello 和 /app2/hello
发送 GET 请求
我来自 java 背景,我开始使用节点 js,现在我很喜欢它。 在将其发布到 SO 之前,我已经阅读了与我的问题类似的其他主题。
我有 3 个不同的节点应用程序(应用程序 1、应用程序 2、应用程序 3) 通常,如果它在 java 中,我将在 tomcat 中部署三个应用程序,并且可以像这样在本地访问它们 localhost:8080/app1,localhost:8080/app2 等。 我在节点 js 中寻找类似的方法。我读过这个 thread 并在全球范围内安装了 express 并使用此代码
创建了一个名为 master.js 的脚本var express = require('express'); var app = express();
app .use('/app1', require('./app1/server.js').app) .use('/app2', require('./app2/server.js').app) .listen(8080);
但我得到
TypeError: Cannot read property 'handle' of undefined
由于我是 node 的新手,我不确定这个过程是否像本文中提到的设置代理等一样复杂 thread
基本上我正在寻找将我所有的应用程序部署在同一个端口并像 localhost:8080/app1, localhost:8080/app2
一样访问它们我需要 nginx 和代理来实现这个吗?
同样在 ec2 实例中,我可以通过进入 app1 文件夹并键入节点 server.js 运行 我的节点应用程序,这样该应用程序将在端口 8080 中列出,但是当我按 ctrl c 执行其他操作时任务,它终止了应用程序。
您需要为每个应用使用一个变量,然后使用它。尝试:
var app1 = require('./app1/server.js').app
var app2 = require('./app2/server.js').app
app.use('/app1', app1).use('/app2', app2).listen(8080);
您不需要 nginx/proxy 来处理这个问题。据我所知,如果你的 app1|app2/server.js-s 是这样构建的,你的代码应该可以工作:
var express = require('express');
var app = express();
app.get('/hello', function() {...})
module.exports = {
app: app
}
现在您可以向 /app1/hello 和 /app2/hello
发送 GET 请求