2

基本上发生的事情是我们有一个运行 express 并路由到一堆 SPA 的应用服务器。这很棒,但后来我们想要一个运行自己的节点/express 脚本 (ghost) 的应用程序。我不知道如何设置路由 /ghost 去 ./webapps/ghost/index.js

这是不可能的吗?

4

1 回答 1

3

您需要将传入请求重定向到 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
  });
});
于 2015-07-08T19:42:33.533 回答