2011-06-22 13 views
10

テストアプリケーションの/ api/* urlからHerokuでホストされているapiにトラフィックをリダイレクトしようとしています。Heroku Node.jsノード-http-proxyモジュールでこのようなアプリケーションエラーがありません

したがって、localhost/api/hello は、testapp.heroku.com/hello にプロキシされ、応答が返されます。

localhostにlocalhostの上で完全にノード-HTTPプロキシ作品を使用して、私は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ののルーティングシステムです感じていますプロキシされたリクエストを捏造してしまいました。私はそれを修正する方法を見つけませんでした。何か案は?

答えて

15

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

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

これはあなたに役立つかどうかを知りたいと思います。

+0

これは完璧に動作します。ヘッダーにホストを設定すると固定されました。何らかの理由で私はhttp-proxyがそれをしたと思った。汚いcURLハックを使わないように私を救ってくれてありがとう!!ありがとう! –

+3

http-proxyはこれを処理するchangeOriginオプションをサポートしています。 https://github.com/nodejitsu/node-http-proxy#http-proxy –

+0

私は文字通り同じことを発見し、同じことをしました。 –

関連する問題