我正在使用nodejs创建一个记录http和https请求的简单代理服务器,但是,我似乎无法记录https请求(http请求很好)
那么如何在nodejs中创建可以建立安全连接的代理服务器呢?
到目前为止我的代码看起来像
var http = require('http'),
httpProxy = require('http-proxy'),
util = require('util'),
url = require('url');
httpProxy.createServer(function (request, response, proxy) {
util.log(request.connection.remoteAddress + ": " +
request.method + " " +
request.url);
request.addListener('data', function(chunk) {
util.log("request: " + chunk);
});
uri = url.parse(request.url);
port = 80;
if (uri.protocol == 'https:') { // NEVER HAPPENS :(
port = 443;
}
util.log("port:" + port + " host:" + uri.host);
proxy.proxyRequest(port, uri.hostname);
}).listen(8080);
它目前正在使用https://github.com/nodejitsu/node-http-proxy代理库,但如果该库不支持https(看起来不像atm那样,因为源代码中没有任何位置设置任何凭据......) ,我很高兴在没有它的情况下重写代理服务器。
答案 0 :(得分:0)
看起来我暂时无法做到这一点,但是有关新tls模块的文档最终会使https连接正常工作。 https://github.com/ry/node/blob/5a87bd168d8fbeca7d48b9ddaa3b4e8a9336719c/doc/api/tls.markdown