13

テストアプリの/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のルーティングシステムだと感じていますが、それを修正する方法が見つかりませんでした。何か案は?

4

1 に答える 1

17

別のドメインにリクエストをプロキシするときに、似たようなものを見てきました。私が使用した回避策は、リモートサイトが期待するドメイン名と一致するようにプロキシリクエストのホストヘッダーを変更することでした。したがって、あなたの場合、コードは次のようになります。

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);

これがあなたのために働くかどうか知りたいです。

于 2011-06-22T19:59:03.160 に答える