Skip to content

js-util/tcp-failover-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tcp-failover-proxy

Setup a TCP proxy server, with automated failover - note this is not a loadbalancing proxy.

Option Default Description
port (required) TCP Proxy Server port
host TCP Proxy Server host binding (use null for all)
backend (required) List of backend host:port paths to route
log true Enable console logging of proxy server setup
shuffle false Shuffle's the backend list, prior to using it
connectTimeout 2500 Connection timeout in milliseconds

npm install

npm install --save @js-util/tcp-failover-proxy

Future TODO

  • ability to change out backend listing on demand
  • ability to run this in a seperate child process .fork thread, while maintaining existing interface.

Example usage

PS: This is incomplete code, you will need to modify for your actual use case.

// Load the module
const TCPFailoverProxy = require("@js-util/tcp-failover-proxy);

// Create the failover proxy, with the desired settings
const proxy = new TCPFailoverProxy({

    // port to run server on
    port: 3128,

    // host to run on, this can be configured for security reasons
    host: 127.0.0.1,

    // backend list, of host to route to
    backend: [ "192.168.10.10:3128", "192.168.10.11:3128" ],

    // enable console logging
    log: true,

    // Shuffle backend list, useful to help distribute traffic
    // over a large list of backend's
    shuffle: false,

    // Connection timeout for a backend to fail
    connectTimeout: 2500

}, (proxyServer) => {

    // Do something with setup callback if you like

});

About

Setup a TCP proxy server, with automated failover - note this is not a loadbalancing proxy.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published