Skip to content
/ core Public

Javascript based reverse & forward proxy with high performance & capability

License

Notifications You must be signed in to change notification settings

gatejs/core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gate

GateJS is a javascript based reverse & forward proxy with high performance & capability.

For more informations about gatejs & configuration please visit the wiki at https://github.com/gatejs/core/wiki

Learn more about gatejs contribution @ https://github.com/gatejs/core/wiki/Contribution

Installation

TLDR

You need to install before NodeJS >4.x.x. Once nodejs is installed you can run:

$ sudo npm install -g gatejs

Installation from git

To install this project from git, you will have to run the following command :

$ git clone https://github.com/gatejs/core.git gate
$ cd gate
$ npm install

If you downloaded the zip from github, you will have to fetch the submodules yourself.

Running gatejs

You can use the forever process manager to run and control gatejs.

mkdir /var/log/gatejs
forever -a -o /var/log/gatejs/forever.log -e /var/log/gatejs/forever-error.log start --uid gatejs --max_old_space_size=150 /usr/bin/gatejs --config=/etc/gatejs/config.js

You can also run the command at the reboot time using cron!

Add the following lines when editing crontab (crontab -e):

@reboot forever -a -o /var/log/gatejs/forever.log -e /var/log/gatejs/forever-error.log start --uid gatejs --max_old_space_size=150 /usr/bin/gatejs --config=/etc/gatejs/config.js

--max_old_space_size=150 allows to control the V8 garbage collector which is set to 150MB.

Debian packages

apt-get install gcc make g++ python

Forward proxy configuration example

var serverConfig = function(bs) { return({
    serverProcess: 4,
    hostname: "testServer0",
    runDir: "/var/run/gatejs",
    dataDir: "/home/gatejs-data",
    logDir: "/var/log/gatejs",
    confDir: '/etc/gatejs',

    http: {
        forwardInterface: {
            type: 'forward',
            port: 80,
            pipeline: 'pipetest'
        }
    },

    pipeline: {
        pipetest: [
            ['cache', { }],
            ['proxyPass', { mode: 'host', timeout: 10 }]
        ],
    }

})};

module.exports = serverConfig;