1

node-http-proxy の例を変更すると...

問題: を手動でreq.headers.hostリモート ホスト (「example.com」) に変更すると、ブラウザの URL が変更されません。

注:これは機能していると思いましたが、例として google.com を使用すると、Google がプロキシを検出してホストを変更していることがわかりました。

質問:ブラウザの URL をリモート ホスト (例: example.com) に毎回変更する方法はありますか? ありがとう!

var util = require('util'),
    colors = require('colors'),
    http = require('http'),
    httpProxy = require('../../lib/node-http-proxy');

//
// Http Server with proxyRequest Handler and Latency
//
var proxy = new httpProxy.RoutingProxy();
http.createServer(function (req, res) {
  req.headers.host = 'example.com'; // manually setting example.com
  var buffer = httpProxy.buffer(req);
  setTimeout(function () {
    proxy.proxyRequest(req, res, {
      port: 80,
      host: 'example.com',
      buffer: buffer
    });
  }, 200);
}).listen(8004);



util.puts('http server '.blue + 'started '.green.bold + 'on port '.blue + '8004 '.yellow + 'with proxyRequest handler'.cyan.underline + ' and latency'.magenta);
util.puts('http server '.blue + 'started '.green.bold + 'on port '.blue + '9000 '.yellow);
4

1 に答える 1

0

これを行ういくつかのソリューションは次のとおりです。

  • 301 リダイレクトを発行します。
  • IPTables を使用して DNAT し、宛先アドレスを変更します。
  • TPROXY を使用して、パケットを変更せずに透過的にリクエストをプロキシします。
于 2013-07-01T16:25:33.787 に答える