2016-04-11 6 views
3

プロキシのターゲットがリダイレクト(この場合は301)を発行すると、プロキシはそれをクライアントに転送します。クライアントは実際のドメインにリダイレクトされ、プロキシを使用しなくなります。このリダイレクトがクライアントに影響しないようにする方法はありますか?私はプロキシがリダイレクトに従うことを望みますが、このリダイレクトに従っている間にクライアントがプロキシを離れることは望ましくありません。node-http-proxyでターゲットからの301リダイレクトを抑制するにはどうすればよいですか?

例の場合:

は、私がfake-proxy.example上で実行されているプロキシを持っていると仮定します。ターゲットをサーバーipに設定し、そのサーバー上のドメインにホストを設定すると、プロキシはhttp経由で接続しようとします。ドメインはhttpトラフィックをhttpsにリダイレクトするように設定され、httpsと同じドメインに301リダイレクトを発行します。このリダイレクトはクライアントに返され、クライアントはfake-proxy.exampleを残して実際のドメインに移動します(この質問ではreal-domain.exampleとしましょう)。私の設定:

var options = { 
    target: { 
     host: '1.1.1.1' 
    }, 
    headers: { 
     host: 'real-domain.example' 
    }, 
    autoRewrite: false, 
    hostRewrite: false, 
    protocalRewrite: false 
}; 

私は助けてくれてありがとう!

+0

これで運がいいですか? – brownmamba

+0

私もこれと戦っています。私はそれが安定してほしい。実際のドメインへのリダイレクトはありません。 – outluch

答えて

0

それは少し遅れてですが、以下のようなソリューションは、1本のポストにつまずくもの助けることができる:もちろん

var http = require('http'); 
var url = require('url'); 
var request = require('request'); 

var host = 'http://real-domain.example'; 

http.createServer(onRequest).listen(3080); 

function onRequest(req, res) { 
    var url_parts = url.parse(req.url); 
    request({ 
     url: host + url_parts.pathname 
    }).on('error', function(e) { 
     res.end(e); 
    }).pipe(res); 
} 

を、クッキーなどが保存され得ることはありません、あなたはおそらく、いくつかを失うことになります機能は私が推測しますが、少なくともであり、のように、プロキシドメインからリダイレクトされません。