2016-05-31 3 views
0

私はCouchbase SyncGatewayの前にリバースプロキシを構築しようとしています。同期ゲートウェイに要求を送信する前に、認証用の認証サーバに送信したい場合は、すべて正常であれば元のものから変更しないで同期ゲートウェイに要求を送信してください。データベースはクライアントの変更で最新の状態に保たれておらず、PUT/POSTリクエストを正常にプロキシしていないためです。私が持っているコードは次のとおりです。ノードjs逆プロキシPUT/POSTリクエストとCouchbase同期ゲートウェイ

var http = require('http'); 
var httpProxy = require('http-proxy'); 
var apiProxy = httpProxy.createProxyServer(); 
var request = require('request').defaults({json: true}); 

var authServer = 'http://authserverdns:5000'; 
var syncGateway = 'http://syncgatewaydns:4984'; 

http.createServer(function (req, res) { 
    if (req.method == 'POST' || req.method == 'PUT') { 
     req.body = ''; 

     req.addListener('data', function(chunk) { 
      req.body += chunk; 
     }); 

     req.addListener('end', function() { 
      processRequest(req, res); 
     }); 
    } else { 
     processRequest(req, res); 
    } 

}).listen(8080); 

function processRequest(req, res) { 
    request(authServer, function(error, response, body) { 
     if (body.authenticated) { 
      console.log('authenticated !!!'); 
      apiProxy.web(this.req, this.res, {target: this.sg}); 
     } else { 
      console.log('request denied !!!'); 
     } 
    }.bind({req: req, res: res, sg: syncGateway})); 
} 

最初はエクスプレスサーバーを使用していて、同じ問題がありました。この問題を調査したところ、ExpressとPUT/POSTリクエストのプロキシに問題があるようです。だから、そこにいくつかの例を使ってみようとしましたが、これは私が終わったものですが、まだ動作していません。ここで私がどこに間違っているのか、どんな考えですか?認証されたプリント、私はプロキシのポイントになっていることを知っている。そして、同期ゲートウェイは、GETリクエストでうまくいくようです。

ありがとう

答えて

0

ugh。私は同期ゲートウェイの転送先アドレスに残りのURLを追加していませんでした。ポストはhere助けました。

関連する問題