Node.js 如何使用节点http代理进行http到HTTPS路由?
以下是我正在使用的模块版本:Node.js 如何使用节点http代理进行http到HTTPS路由?,node.js,http-proxy,node-http-proxy,Node.js,Http Proxy,Node Http Proxy,以下是我正在使用的模块版本: $ npm list -g | grep proxy ├─┬ http-proxy@0.10.0 Web服务调用我的机器,我的任务是根据请求正文的内容,使用附加的查询参数将请求代理到不同的url和主机: var http = require('http'), httpProxy = require('http-proxy') form2json = require('form2json'); httpProxy.createServer
$ npm list -g | grep proxy
├─┬ http-proxy@0.10.0
Web服务调用我的机器,我的任务是根据请求正文的内容,使用附加的查询参数将请求代理到不同的url和主机:
var http = require('http'),
httpProxy = require('http-proxy')
form2json = require('form2json');
httpProxy.createServer(function (req, res, proxy) {
// my custom logic
var fullBody = '';
req.on('data', function(chunk) {
// append the current chunk of data to the fullBody variable
fullBody += chunk.toString();
});
req.on('end', function() {
var jsonBody = form2json.decode(fullBody);
var payload = JSON.parse(jsonBody.payload);
req.url = '/my_couch_db/_design/ddoc_name/_update/my_handler?id="' + payload.id + '"';
// standard proxy stuff
proxy.proxyRequest(req, res, {
changeOrigin: true,
host: 'my.cloudant.com',
port: 443,
https: true
});
});
}).listen(8080);
但我不断遇到错误,如:发生错误:{“code”:“ECONNRESET”}
有人知道这里需要修复什么吗?这帮我解决了问题:
var httpProxy = require('http-proxy');
var options = {
changeOrigin: true,
target: {
https: true
}
}
httpProxy.createServer(443, 'www.google.com', options).listen(8001);
将端口
3000中的所有请求转发到https://google.com
:
const https = require('https')
const httpProxy = require('http-proxy')
httpProxy.createProxyServer({
target: 'https://google.com',
agent: https.globalAgent,
headers: {
host: 'google.com'
}
}).listen(3000)
受到启发的例子 经过一些尝试和错误后,这对我来说很有效:
var fs = require('fs')
var httpProxy = require('http-proxy');
var https = require('https');
var KEY = 'newfile.key.pem';
var CERT = 'newfile.crt.pem';
httpProxy.createServer({
changeOrigin: true,
target: 'https://example.com',
agent: new https.Agent({
port: 443,
key: fs.readFileSync(KEY),
cert: fs.readFileSync(CERT)
})
}).listen(8080);
谢谢你,亚伦,这是很长一段时间以来我在这个话题上得到的第一个有用的答案,也是一个真正有效的答案!