git.schokokeks.org
Repositories
Help
Report an Issue
fs-words.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
6e9c872
Branches
Tags
develop-client_server
master
typescript
fs-words.git
server
lib
node_modules
needle
test
utils
proxy.js
[add] server:lib:node_modules
Christian Fraß
commited
6e9c872
at 2021-03-08 23:52:07
proxy.js
Blame
History
Raw
var http = require('http'), https = require('https'), url = require('url'); var port = 1234, log = true, request_auth = false; http.createServer(function(request, response) { console.log(request.headers); console.log("Got request: " + request.url); console.log("Forwarding request to " + request.headers['host']); if (request_auth) { if (!request.headers['proxy-authorization']) { response.writeHead(407, {'Proxy-Authenticate': 'Basic realm="proxy.com"'}) return response.end('Hello.'); } } var remote = url.parse(request.url); var protocol = remote.protocol == 'https:' ? https : http; var opts = { host: request.headers['host'], port: remote.port || (remote.protocol == 'https:' ? 443 : 80), method: request.method, path: remote.pathname, headers: request.headers } var proxy_request = protocol.request(opts, function(proxy_response){ proxy_response.on('data', function(chunk) { if (log) console.log(chunk.toString()); response.write(chunk, 'binary'); }); proxy_response.on('end', function() { response.end(); }); response.writeHead(proxy_response.statusCode, proxy_response.headers); }); request.on('data', function(chunk) { if (log) console.log(chunk.toString()); proxy_request.write(chunk, 'binary'); }); request.on('end', function() { proxy_request.end(); }); }).listen(port); process.on('uncaughtException', function(err){ console.log('Uncaught exception!'); console.log(err); }); console.log("Proxy server listening on port " + port);