Я разрабатываю прокси-сервер 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
});
Любая помощь будет оценена.