я просматривал этот код для Nodejs HTTP и HTTPS через один и тот же порт link => 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 , он направляет бафф в новыйсоединение по порту адрес переадресации .Тогда как он переходит на 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)
в чем может быть причина?