2

パスベースのルーティングを備えたプロキシが必要です。しかし、私のコードは機能しません

var httpProxy = require('http-proxy')

var proxy = httpProxy.createProxy();

var options = {
'example.com/app1': 'http://localhost:4444',
'example.com/app2': 'http://localhost:3333'
}

require('http').createServer(function(req, res) {
proxy.web(req, res, {
    target: options[req.headers.host]
},function(error) {

});
}).listen(80);

問題はどうですか?

手伝ってくれてありがとう

4

2 に答える 2

2

Express ルートにプロキシをマウントできるexpress-http-proxyを試してみてください。

app.use('/app1/', proxy('http://localhost:4444', {
    forwardPath: function(req, res){
      return url.parse(req.url).path.replace(/\/app1/,'/');
    }
  })
);

あなたが node.js ソリューションを求めたとしても、このルートを使用することを実際に提案することはできません (しゃれは意図されていません)。nginx のように、この特定のユースケースでさらにテストされたものを使用した方がよいでしょう。

location /app1/ {
  proxy_pass http://localhost:4444;
}
于 2014-09-23T16:46:47.257 に答える