2012-05-07 8 views
0

1つのAWSインスタンスで複数のNodeアプリケーションをホストしています。私は仮想ホストでApacheを使っていましたが、Nodeだけを使いたいと思っています。 node-http-proxyはタスクを実行するように見えますが、プロキシ・テーブルを使用して転送することはできません。ここでnode-http-proxyの転送先とルータの組み合わせ

が動作するようになっているか、プロキシテーブルです:

var options = { 
router: { 
    'app1.website.com': 'localhost:7100', 
    'app2.website.com': 'localhost:15110' 
} 
}; 

var proxyServer = httpProxy.createServer(options).listen(80); 

私はAPP1とAPP2がインスタンス上で実行されていると、それぞれ7100と15110を聞いていますが、単にルータオプションを使用すると、転送はできません。

私が使用して転送するためだけのものを得ることができます。

var options = { 
forward: { 
    port: 15110, 
    host: 'localhost' 
} 
}; 

var proxyServer = httpProxy.createServer(15110, 'localhost', options); 

任意のアイデアどのように両方の利点を得るために?ドキュメントには、オプションを使って 'forward'と 'router'の両方を渡すことができると書かれていますが、それはどういうわけかはっきりしていません。

+0

私は新しいAWSインスタンスをスピンアップし、Alan Hoffmeisterのアドバイスに従いました。 – randylubin

答えて

0

localhostの代わりに127.0.0.1を試しましたか?そして、「フォワーディングを許可しない」という意味はどうですか?どのノード-httpプロキシが内部的に要求を転送するのではなく、それを転送するのですか?

+0

127.0.0.1を使用して試しましたが、違いはありませんでした。 'router'オプションは機能しません。私が転送を言ったとき、私はクライアントに公開されていないポート7100と15110上で動作する他のノードサーバーへのリバースプロキシの作成を意味しました。 – randylubin