greenlock-express.js/examples/http-proxy/server.js

45 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

2019-10-31 12:46:35 +00:00
"use strict";
function httpsWorker(glx) {
2019-11-01 21:14:07 +00:00
// we need the raw https server
var server = glx.httpsServer();
var proxy = require("http-proxy").createProxyServer({ xfwd: true });
2019-10-31 12:46:35 +00:00
2019-11-01 21:14:07 +00:00
// catches error events during proxying
proxy.on("error", function(err, req, res) {
console.error(err);
res.statusCode = 500;
res.end();
return;
});
2019-10-31 12:46:35 +00:00
2019-11-01 21:14:07 +00:00
// We'll proxy websockets too
server.on("upgrade", function(req, socket, head) {
proxy.ws(req, socket, head, {
ws: true,
target: "ws://localhost:3000"
});
});
2019-10-31 12:46:35 +00:00
2019-11-01 21:14:07 +00:00
// servers a node app that proxies requests to a localhost
glx.serveApp(function(req, res) {
proxy.web(req, res, {
target: "http://localhost:3000"
});
});
2019-10-31 12:46:35 +00:00
}
2019-11-01 10:12:40 +00:00
var pkg = require("../../package.json");
//require("greenlock-express")
require("../../")
2019-11-01 21:14:07 +00:00
.init(function getConfig() {
// Greenlock Config
2019-11-01 10:12:40 +00:00
2019-11-01 21:14:07 +00:00
return {
package: { name: "http-proxy-example", version: pkg.version },
maintainerEmail: "jon@example.com",
cluster: false
};
})
.serve(httpsWorker);