从另一个应用程序(expressjs)反向代理Ghost(Heroku应用程序)

时间:2015-01-04 05:36:14

标签: heroku express http-proxy ghost-blog node-http-proxy

简单案例:我有app1 - 这是一个ghost(site-blog.herokuapp.com)的安装。我有app2,这是一个自定义express.js应用程序(site.herokuapp.com)。

我想从site.herokuapp.com/blog提供博客。

对于Ghost,这是config.js

的一部分
  production: {
    url: process.env.BLOG_IDENTIFIER_URL,
    fileStorage: false,
    database: {
      client: 'postgres',
      connection: process.env.DATABASE_URL,
      debug: false
    },
    server: {
      host: '0.0.0.0',
      port: process.env.PORT
    }
  },

BLOG_IDENTIFIER_URL设置为site.herokuapp.com/blog

对于express.js应用,我有以下路由(对于/blog):

router.all('*', function(req, res) {
  //  blog page is actually a ghost!
  var blog_url = 'http://localhost:2368';
  if (process.env.NODE_ENV === 'production') {
    blog_url = 'http://site-blog.herokuapp.com';
  }
  req.headers.host = blog_url;
  require('http-proxy').createProxyServer().web(req, res, { target: blog_url });
});

这在本地工作得非常好,但是当我将两个回购推送到heroku,并尝试访问site.herokuapp.com/blog时,我只得到一个空白页面,而不是日志中的任何内容。请求失败但是:

Imgur

我已经尝试了很多东西,无论是来自SO还是其他可见的互联网。似乎没什么用。我在这里呆了4个小时。如果您有任何可能有用的信息,请发表评论或回答。

0 个答案:

没有答案