2011-06-22 21 views
10

Test uygulamamın/api/* url'mden gelen trafiği Heroku'da barındırılan apiüme yönlendirmeye çalışıyorum. Bu nedenle, localhost/api/hello , testapp.heroku.com/hello 'a gönderilmeli ve yanıt geri döndürülmelidir.Heroku Node.js node-http-proxy modülü ile böyle bir uygulama hatası yok

mükemmel localhost localhost üzerinde düğüm-http-vekil eserlerini kullanma

ama myapp.heroku.com yönlendirin zaman, bu hatayı alıyorum:

Heroku | No such app 
There is no app configured at that hostname. 
Perhaps the app owner has renamed it, or you mistyped the URL. 

Ben bu kadar Heroku yönlendirme sistemidir his var proxied isteğimi uydurup düzeltmek için bir yol bulamadım. Herhangi bir fikir?

cevap

15

Farklı bir etki alanına istekleri bildirirken benzer bir şey gördüm. Kullandığım çalışma, uzak sitenin beklediği alan adıyla eşleştirmek için proxy isteğindeki ana bilgisayar üstbilgisini değiştirmekti. Bunun sizin için çalıştığını bilmek ilgi duyarım

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

: gibi Yani sizin durumda kod görünürdü.

+0

Kusursuz çalışır. Ana makineyi başlıkta ayarlamak bunu düzeltdi. Bir sebepten dolayı, bunu http-vekilinin yapmış olabileceğini düşündüm. Kirli bir cURL hack kullanarak beni kurtardığınız için teşekkürler! Teşekkürler! –

+3

http-proxy, bununla ilgilenen bir changeOrigin seçeneğini destekler. https://github.com/nodejitsu/node-http-proxy#http-proxy –

+0

Ben tam olarak aynı şeyi keşfettim ve yaptım. –