2016-09-16 5 views
0

私は、クライアントアプリケーションと残りのAPI間のプロキシAPI要求に対する.NETソリューションを探しています。私が見つけたnode.jsバックエンドが必要な解決策の1つは、このhttp:// http://shawnsimondeveloper.com/nodeproxyangular/に続くノードhttp-proxyです。.NETと同等のノードhttp-proxy

.NETプロキシは、認証のためのAPI要求に証明書を添付できる必要があります。プロキシは任意の要求を受け取り、宛先URLに渡す必要があります。

.NETにはどのようなオプションがありますか?

答えて

0

私は、ノードのソリューションに固執することを決め、ここでプロキシにAPIへの証明書を使用して要求を使用し、簡単なコードです。キーは、キー、証明書、およびcaプロパティをプロキシオプションのターゲットに追加することでした。

'use strict'; 
let fs = require('fs'); 
let https = require('https'); 
let express = require('express'); 
let httpProxy = require('http-proxy'); 
let privateKey = fs.readFileSync(__dirname + '/certs/server.key', 'utf8'); 
let certificate = fs.readFileSync(__dirname + '/certs/cert.pem', 'utf8'); 
let caChain = fs.readFileSync(__dirname + '/certs/cachain.pem', 'utf8'); 
let staticRoot = __dirname + '/'; 

let httpsOptions = { 
    key: privateKey, 
    cert: certificate, 
    ca: [caChain] 
}; 

let proxyOptions = { 
    target: { 
     host: 'api.host.com', 
     protocol: 'https:', 
     key: privateKey, 
     cert: certificate, 
     ca: caChain, 
    }, 
    changeOrigin: true 
}; 

let app = express(); 
let apiProxy = httpProxy.createProxyServer(proxyOptions); 
app.use(express.static(staticRoot)); 
app.all('/api/*', function(req, res) { 
    console.log(Date().toString('yyyymmdd hh:mm:ss') + ' - API Request Proxied'); 
    apiProxy.web(req, res, proxyOptions); 
}); 

https.createServer(httpsOptions, app).listen(3001, function(){ 
    console.log('https server listening on port 3001'); 
}); 
0

私はたぶんnginxと一緒に行くだろうが、ドキュメントは時折イライラすることがある。

http://nginx.org/

+0

あなたの推薦の後ろに推論を提供できますか? – JoAMoS

+0

@SkiGeek無料で、Windows上で動作します。既に存在するときにプロキシを作成しようとする理由はありません。 – dwbartz

+0

私はそれが私たちのインフラにどのように適合するかを見なければなりません。現在のところ、私の質問にリンクされているNode.jsソリューションよりも、これがどのように有益なのか分かりません。 – JoAMoS

関連する問題