UNPKG

procfiled

Version:

Node.js process manager for Procfile-based applications

52 lines (41 loc) 1.24 kB
// Copyright IBM Corp. 2012,2016. All Rights Reserved. // Node module: procfiled // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT var http = require("http"); var url = require("url"); var httpProxy = require("http-proxy"); function startForward(proxy_port, proxy_host) { var proxy = httpProxy.createProxyServer({}); var httpServer = http.createServer(function (req, res) { var _url = url.parse(req.url); var dest = _url.hostname; var port = _url.port || 80; var host = "127.0.0.1"; var target; if (proxy_host === "<ANY>" || proxy_host === dest) { target = { host: host, port: port, }; req.url = _url.path; } else { target = { host: dest, port: port, }; } proxy.web(req, res, { target: target }); }); proxy.on("upgrade", function (req, socket, head) { proxy.ws(req, socket, head); }); proxy.on("error", function (err, req, res) { console.error("Proxy Error: ", err); res.writeHead(500); res.write("Upstream Proxy Error"); res.end(); }); httpServer.listen(proxy_port); } startForward(process.env.PROXY_PORT, process.env.PROXY_HOST);