我正在尋找.NET解決方案來代理客戶端應用程序和其餘API之間的API請求。一個需要node.js後端的解決方案是找到這個http://shawnsimondeveloper.com/nodeproxyangular/示例後面的節點http-proxy。.NET等價於節點http代理
.NET代理需要能夠將證書附加到api身份驗證請求。代理應該接受任何請求並將其傳遞到目標網址。
.NET有哪些選項可用?
我正在尋找.NET解決方案來代理客戶端應用程序和其餘API之間的API請求。一個需要node.js後端的解決方案是找到這個http://shawnsimondeveloper.com/nodeproxyangular/示例後面的節點http-proxy。.NET等價於節點http代理
.NET代理需要能夠將證書附加到api身份驗證請求。代理應該接受任何請求並將其傳遞到目標網址。
.NET有哪些選項可用?
我決定堅持與節點的解決方案,在這裏是用於代理與一個證書到API的請求的簡單代碼。關鍵是在代理選項中將key,cert和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');
});
我可能會去nginx,雖然他們的文檔有時會令人沮喪。
你能提供推薦背後的推理嗎? – JoAMoS
@SkiGeek它是免費的,可以在windows上運行。當他們已經存在時沒有理由嘗試創建代理。 – dwbartz
我將不得不看看它是如何適應我們的基礎設施。目前我不明白這是如何比我的問題中鏈接的Node.js解決方案更有益的。 – JoAMoS