servlet

Single thread, multiple host node application server

servlet

run multiple servers in one node.js process, restarting individual servers when their code files change on disk

servlet uses [fs.watch] to monitor server module source files and its own configuration file. Modules are reloaded to realize changes immediately.

As root:

> servlet config.conf 80 wwwdata:wwwdata

As an unpriviliged user:

> servlet config.conf 8080

[
  { "host": "project1.example.com", "file": "./project1/index.js" },
  { "host": "project2.example.com", "file": "../funstuff/server.js" }
]
var app = require('http').createServer(function(req,res){res.end(req.url)})
exports.start = function( options ) {
  // start listening on the port assigned to the servlet
  app.listen( options.port );
}
exports.stop = function() {
  // clean up
  app.close();
}

On Ubuntu systems upstart can be used to launch servlet at boot time and keep it running. Check out node-servlet.conf for an upstart example config file.