Я разрабатываю прокси-сервер node.js, и я хочу, чтобы он поддерживал протоколы HTTP и HTTPS(SSL) (как сервер).
В настоящее время я использую node-http-proxy:
const httpProxy = require('http-proxy'),
http = require('http');
var server = httpProxy.createServer(9000, 'localhost', function(req, res, proxy) {
console.log(req.url);
proxy.proxyRequest(req, res);
});
http.createServer(function(req, res) {
res.end('hello!');
}).listen(9000);
server.listen(8000);
Я настраиваю свой браузер для использования прокси-сервера HTTP на localhost:8000, и он работает. Я также хочу поймать запросы HTTPS (т.е. Настроить мой браузер на использование localhost:8000 в качестве прокси-сервера HTTPS и уловить запросы в моем приложении). Не могли бы вы помочь мне, как я могу это сделать?
PS
Если я подписываюсь на upgrade событие объекта httpProxy сервера, я могу получить запросы, но я не знаю, как перенаправить запрос и отправить ответ клиенту:
server.on('upgrade', function(req, socket, head) {
console.log(req.url);
// I don't know how to forward the request and send the response to client
});
Любая помощь будет оценена.