simple-reverse-proxy

A simple reverse-proxy

Usage no npm install needed!

<script type="module">
  import simpleReverseProxy from 'https://cdn.skypack.dev/simple-reverse-proxy';
</script>

README

simple-reverse-proxy

A simple reverse proxy that takes care of managing upstream servers.

Built with node-http-proxy.

Example

var SimpleReverseProxy = require('simple-reverse-proxy');

new SimpleReverseProxy([
        'http://localhost:10001',
        'http://localhost:10002',
        'http://localhost:10003'
    ], {
        agent: false
    })
    .listen(10000);

[10001, 10002, 10003].forEach(function (port) {
    require('http')
        .createServer(function (req, res) {
            res.statusCode = 200;
            res.end();

            console.log(port);
        })
        .listen(port);
});

Upgrading from v0.0.4

Previous versions of simple-reverse-proxy provided a path-based router which has been removed in v1.0.0. This functionality can be replaced with simple-path-router. Also see simple-virtual-hosts to add host based routing/virtual hosts.

var SimpleReverseProxy = require('simple-reverse-proxy'),
    SimplePathRouter = require('simple-path-router');

new SimplePathRouter()
    .when('/', new SimpleReverseProxy(['http://localhost:10001']))
    .when('/api', new SimpleReverseProxy(['http://localhost:10002', 'http://localhost:10003']))
    .listen(10000);

[10001, 10002, 10003].forEach(function (port) {
    require('http')
        .createServer(function (req, res) {
            res.statusCode = 200;
            res.end();

            console.log(port);
        })
        .listen(port);
});