我正在尝试将流量从我的测试应用的/ api / * url重定向到我在Heroku上托管的api。
因此,localhost / api / hello 应该代理到testapp.heroku.com/hello 并且回复了。
使用node-http-proxy在localhost上完美地工作到localhost,但是当我将它指向myapp.heroku.com时,我收到此错误:
Heroku | No such app
There is no app configured at that hostname.
Perhaps the app owner has renamed it, or you mistyped the URL.
我感觉这是Heroku的路由系统正在捏造我的代理请求,而我还没有找到解决方法。有什么想法吗?
答案 0 :(得分:16)
在将请求代理到其他域时,我看到了类似的内容。我使用的工作是修改代理请求上的主机头以匹配远程站点期望的域名。所以在你的情况下,代码看起来像:
var http = require('http'),
httpProxy = require('http-proxy');
var server = httpProxy.createServer(function (req, res, proxy) {
req.headers.host = 'myapp.heroku.com';
proxy.proxyRequest(req, res, {
port: 80,
host: 'myapp.heroku.com'
});
}).listen(9000);
我很想知道这是否适合你。