基本上发生的事情是我们有一个运行 express 并路由到一堆 SPA 的应用服务器。这很棒,但后来我们想要一个运行自己的节点/express 脚本 (ghost) 的应用程序。我不知道如何设置路由 /ghost 去 ./webapps/ghost/index.js
这是不可能的吗?
您需要将传入请求重定向到 ghost express 实例。我已经在我的个人站点中通过将 /blog 路由添加到我的主 express 实例并将对它的任何请求转发到 ghost express 实例来完成此操作。在这里查看:https ://github.com/evanshortiss/evanshortiss.com/blob/master/server.js
基本要点是您执行以下操作:
app.use('/blog', function(req, res, next) {
// Forward this request on...
return next();
}, ghostServer.rootApp); //...but we forward it to a different express instance
如果您将两者作为单独的进程运行,那么您可以使用 Apache 或 nginx 来重定向请求。如果您绝对必须使用 express 应用程序来转发请求,请尝试 node-http-proxy 模块。
如果您需要从 express 代理,您可以使用 Nodejitsu 的 http-proxy 模块来执行此操作:
var proxy = require('http-proxy').createProxyServer({});
app.use('/blog', function (req, res) {
// You may need to edit req.url (or similar) to strip the /blog part of the url or ghost might not recognise it
proxy.web(req, res, {
target: 'http://127.0.0.1:'+GHOST_PORT
});
});