我正在通过同一端口上的 Nodejs HTTP和HTTPS遍历这段代码 链接=> https://stackoverflow.com/a/23975955
现在,在代码中,我无法弄清楚代理在那里的工作方式
function tcpConnection(conn) {
conn.once('data', function (buf) {
// A TLS handshake record starts with byte 22.
var address = (buf[0] === 22) ? httpsAddress : redirectAddress;
var proxy = net.createConnection(address, function () {
proxy.write(buf);
conn.pipe(proxy).pipe(conn);
});
});
}
我可以理解https服务器位于3002上,而http服务器位于3001上。但是,当变量 address 具有 redirectAddress 时,它将buff通过管道传输到端口上的新连接中redirectaddress 。然后如何转移到https?
我的意思是端口3000转移到3001和3002。但是3001如何转移到3002?是因为这部分是http重定向吗?
function httpConnection(req, res) {
var host = req.headers['host'];
res.writeHead(301, { "Location": "https://" + host + req.url });
res.end();
}
我在Google上尝试过,但是却找不到我的疑问。
难道我们也不能减少端口数量吗?像这里使用了2个其他端口。
有时服务器也会无处终止,并且出现此错误
events.js:182
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at _errnoException (util.js:1026:11)
at TCP.onread (net.js:606:25)
可能的原因是什么?